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 |
# 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" end |
Instance Method Details
#destroy(target, name) ⇒ Object
97 98 99 100 101 102 103 |
# File 'lib/itamae/cli.rb', line 97 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
65 66 67 68 69 70 71 |
# File 'lib/itamae/cli.rb', line 65 def docker(*recipe_files) if recipe_files.empty? raise "Please specify recipe files." end Runner.run(recipe_files, :docker, ) end |
#generate(target, name) ⇒ Object
87 88 89 90 91 92 93 |
# File 'lib/itamae/cli.rb', line 87 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
79 80 81 82 83 |
# File 'lib/itamae/cli.rb', line 79 def init(name) generator = Generators::Project.new generator.destination_root = name generator.invoke_all end |
#local(*recipe_files) ⇒ Object
31 32 33 34 35 36 37 |
# File 'lib/itamae/cli.rb', line 31 def local(*recipe_files) if recipe_files.empty? raise "Please specify recipe files." end Runner.run(recipe_files, :local, ) end |
#ssh(*recipe_files) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/itamae/cli.rb', line 48 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 Runner.run(recipe_files, :ssh, ) end |