class Charmkit::CLI
Public Instance Methods
generate(name)
click to toggle source
# File lib/charmkit/cli.rb, line 11 def generate(name) pn = Pathname(name) if pn.directory? puts "#{name} directory exists, please choose a different charm name." exit 1 else pn.mkpath pn.join('hooks').mkpath end Helpers.inline_template 'config.yaml', pn/'config.yaml' Helpers.inline_template 'metadata.yaml', pn/'metadata.yaml', name: name Helpers.inline_template 'README.md', pn/'README.md', name: name Helpers.inline_template 'Gemfile', pn/'Gemfile' # Write the install hook hook_path = pn.join('hooks/install') Helpers.inline_template 'install-hook', hook_path hook_path.chmod 0755 # Write other hooks hooks = ['config-changed', 'upgrade-charm', 'start', 'stop', 'leader-elected', 'leader-settings-changed', 'update-status'] hooks.each do |hook| hook_path = pn.join("hooks/#{hook}") Helpers.inline_template 'generic-hook', hook_path, hook: hook.underscore hook_path.chmod 0755 end Helpers.inline_template 'Rakefile', pn/'Rakefile' end