Class: Itamae::Template::CLI

Inherits:
Thor
  • Object
show all
Defined in:
lib/itamae/template/cli.rb

Constant Summary collapse

AVAILABLE_TARGETS =
%w[role cookbook].freeze
TEMPLATE_PATH =
Pathname.new(File.expand_path('../../../template', __dir__))
COLOR_MAP =
{
  red:   31, # remove
  green: 32, # create
  blue:  34, # identical
  white: 37, # invoke
}

Instance Method Summary collapse

Instance Method Details

#destroy(target, name) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/itamae/template/cli.rb', line 35

def destroy(target, name)
  validate_target!(target)

  recursive_remove(File.join("#{target}s", name))
  recursive_remove(File.join("#{target}s", name, 'default.rb'))
  recursive_remove(File.join("#{target}s", name, 'node.yml'))
end

#generate(target, name) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/itamae/template/cli.rb', line 25

def generate(target, name)
  validate_target!(target)

  create_directory(File.join("#{target}s", name))
  create_file(File.join("#{target}s", name, 'default.rb'), "# noop\n")
  create_file(File.join("#{target}s", name, 'node.yml'), "# No variables\n")
end

#initObject



18
19
20
21
22
# File 'lib/itamae/template/cli.rb', line 18

def init
  Dir.glob(TEMPLATE_PATH.join('**/*')).sort.each do |path|
    copy_template(path)
  end
end