class Packager::CLI
Public Class Methods
exit_on_failure?()
click to toggle source
Make sure to exit(1) on failure. This isn't covered in the specs. :nocov:
# File lib/packager/cli.rb, line 8 def self.exit_on_failure? true end
Public Instance Methods
__print_version()
click to toggle source
# File lib/packager/cli.rb, line 16 def __print_version puts Packager::VERSION end
execute(*args)
click to toggle source
# File lib/packager/cli.rb, line 24 def execute(*args) if args.empty? raise Thor::Error, "No filenames provided for execute" end (options['var'] || {}).each do |name, value| if Packager::DSL.reserved_words.include? name raise Thor::Error, "'#{name}' is a reserved word" end Packager::DSL.add_helper(name.to_sym) { value } end args.each do |filename| unless File.exists? filename raise Thor::Error, "'#{filename}' cannot be found" end begin items = Packager::DSL.parse_dsl(IO.read(filename)) rescue Exception => e raise Thor::Error, "'#{filename}' has the following errors:\n#{e}" end if items.empty? raise Thor::Error, "'#{filename}' produces nothing" end packages = Packager::Executor.new( dryrun: options['dryrun'], ).execute_on(items) puts "'#{filename}' executed #{packages.join(', ')}" end end
validate(*args)
click to toggle source
# File lib/packager/cli.rb, line 60 def validate(*args) if args.empty? raise Thor::Error, "No filenames provided for validate" end args.each do |filename| unless File.exists? filename raise Thor::Error, "'#{filename}' cannot be found" end begin items = Packager::DSL.parse_dsl(IO.read(filename)) rescue Exception => e raise Thor::Error, "'#{filename}' has the following errors:\n#{e}" end if items.empty? raise Thor::Error, "'#{filename}' produces nothing" end puts "'#{filename}' parses cleanly" end end