class Pakman::Gen

Attributes

opts[R]

Public Class Methods

new( opts ) click to toggle source
# File lib/pakman/cli/commands/gen.rb, line 11
def initialize( opts )
  @opts    = opts
end

Public Instance Methods

run( args ) click to toggle source
# File lib/pakman/cli/commands/gen.rb, line 17
def run( args )
  manifest_name = opts.manifest
  manifest_name = manifest_name.downcase.gsub('.txt', '' )  # remove .txt if present

  logger.debug "manifest=#{manifest_name}"

  # check for matching manifests
  manifests = installed_template_manifests.select { |m| m[0] == manifest_name+'.txt' }

  if manifests.empty?
    puts "*** error: unknown template pack '#{manifest_name}'; use pakman -l to list installed template packs"
    exit 2
  end

  manifestsrc = manifests[0][1]
  pakpath     = opts.output_path

  if args.empty?
    Copier.new.copy_pak( manifestsrc, pakpath )
  else
    args.each do |arg|
      data = YAML.load_file( arg )
      name = File.basename( arg, '.*' )
      puts "#{name}:"
      pp data
      Templater.new.merge_pak( manifestsrc, pakpath, Ctx.new(data).ctx, name )
    end
  end

end