Sha256: bb3ebdd5132d619eb473f583373cc4e9a28efe0cef781c5472eef77a1c481031

Contents?: true

Size: 1.56 KB

Versions: 7

Compression:

Stored size: 1.56 KB

Contents

module Runbook
  class Initializer < Thor::Group
    include Thor::Actions

    source_root File.join(
      File.dirname(__FILE__),
      "generators",
      "project",
    )

    add_runtime_options!
    check_unknown_options!

    def create_runbookfile
      template(
        "templates/Runbookfile.tt",
        "Runbookfile",
      )
    end

    def create_runbooks_directory
      target = "runbooks"
      empty_directory(target)
      _keep_dir(target)
    end

    def create_lib_directory
      dirs = [
        "lib",
        "runbook",
      ]
      target = File.join(*dirs)

      empty_directory(target)
      _keep_dir(target)
    end

    def create_extensions_directory
      dirs = [
        "lib",
        "runbook",
        "extensions",
      ]
      target = File.join(*dirs)

      empty_directory(target)
      _keep_dir(target)
    end

    def create_generators_directory
      dirs = [
        "lib",
        "runbook",
        "generators",
      ]
      target = File.join(*dirs)

      empty_directory(target)
      _keep_dir(target)
    end

    def runbook_initialization_overview
      msg = [
        "",
        "Runbook was successfully initialized.",
        "Add runbooks to the `runbooks` directory.",
        "Add shared code to `lib/runbook`.",
        "Execute runbooks using `bundle exec runbook exec <RUNBOOK_PATH>`",
        "from your project root.",
        "\n",
      ]

      say(msg.join("\n"))
    end

    private

    def _keep_dir(dir)
      create_file(
        File.join(dir, ".keep"),
        verbose: false,
      )
    end
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
careacademy-runbook-1.2.0 lib/runbook/initializer.rb
runbook-1.1.0 lib/runbook/initializer.rb
runbook-1.0.0 lib/runbook/initializer.rb
runbook-0.16.1 lib/runbook/initializer.rb
runbook-0.16.0 lib/runbook/initializer.rb
runbook-0.15.0 lib/runbook/initializer.rb
runbook-0.14.0 lib/runbook/initializer.rb