Class: Itamae::CLI
- Inherits:
-
Thor
- Object
- Thor
- Itamae::CLI
- Defined in:
- lib/itamae/cli.rb
Constant Summary collapse
- GENERATE_TARGETS =
%w[cookbook role].freeze
Class Method Summary collapse
Instance Method Summary collapse
- #destroy(target, name) ⇒ Object
- #docker(*recipe_files) ⇒ Object
- #generate(target, name) ⇒ Object
- #init(name) ⇒ Object
-
#initialize ⇒ CLI
constructor
A new instance of CLI.
- #local(*recipe_files) ⇒ Object
- #ssh(*recipe_files) ⇒ Object
- #version ⇒ Object
Constructor Details
Class Method Details
.define_exec_options ⇒ Object
19 20 21 22 23 24 25 26 27 28 |
# File 'lib/itamae/cli.rb', line 19 def self. option :recipe_graph, type: :string, desc: "[EXPERIMENTAL] Write recipe dependency graph in DOT", banner: "PATH" option :node_json, type: :string, aliases: ['-j'] option :node_yaml, type: :string, aliases: ['-y'] option :dry_run, type: :boolean, aliases: ['-n'] option :shell, type: :string, default: "/bin/sh" option :ohai, type: :boolean, default: false, desc: "This option is DEPRECATED and will be unavailable." option :profile, type: :string, desc: "[EXPERIMENTAL] Save profiling data", banner: "PATH" option :detailed_exitcode, type: :boolean, default: false, desc: "exit code 0 - The run succeeded with no changes or failures, exit code 1 - The run failed, exit code 2 - The run succeeded, and some resources were changed" end |
Instance Method Details
#destroy(target, name) ⇒ Object
98 99 100 101 102 103 104 |
# File 'lib/itamae/cli.rb', line 98 def destroy(target, name) validate_generate_target!('destroy', target) generator = Generators.find(target).new generator.destination_root = File.join("#{target}s", name) generator.remove_files end |
#docker(*recipe_files) ⇒ Object
66 67 68 69 70 71 72 |
# File 'lib/itamae/cli.rb', line 66 def docker(*recipe_files) if recipe_files.empty? raise "Please specify recipe files." end run(recipe_files, :docker, ) end |
#generate(target, name) ⇒ Object
88 89 90 91 92 93 94 |
# File 'lib/itamae/cli.rb', line 88 def generate(target, name) validate_generate_target!('generate', target) generator = Generators.find(target).new generator.destination_root = File.join("#{target}s", name) generator.copy_files end |
#init(name) ⇒ Object
80 81 82 83 84 |
# File 'lib/itamae/cli.rb', line 80 def init(name) generator = Generators::Project.new generator.destination_root = name generator.invoke_all end |
#local(*recipe_files) ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/itamae/cli.rb', line 32 def local(*recipe_files) if recipe_files.empty? raise "Please specify recipe files." end run(recipe_files, :local, ) end |
#ssh(*recipe_files) ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/itamae/cli.rb', line 49 def ssh(*recipe_files) if recipe_files.empty? raise "Please specify recipe files." end unless [:host] || [:vagrant] raise "Please set '-h <hostname>' or '--vagrant'" end run(recipe_files, :ssh, ) end |