class Vanagon::CLI::Build
Constants
- DOCUMENTATION
Public Instance Methods
options_translate(docopt_options)
click to toggle source
# File lib/vanagon/cli/build.rb, line 60 def options_translate(docopt_options) translations = { '--verbose' => :verbose, '--workdir' => :workdir, '--remote-workdir' => :'remote-workdir', '--configdir' => :configdir, '--engine' => :engine, '--skipcheck' => :skipcheck, '--preserve' => :preserve, '--only-build' => :only_build, '<project-name>' => :project_name, '<platforms>' => :platforms, '<targets>' => :targets } return docopt_options.map { |k, v| [translations[k], v] }.to_h end
options_validate(options)
click to toggle source
# File lib/vanagon/cli/build.rb, line 77 def options_validate(options) # Handle --preserve option checking valid_preserves = %w[always never on-failure] unless valid_preserves.include? options[:preserve] raise InvalidArgument, "--preserve option can only be one of: #{valid_preserves.join(', ')}" end options[:preserve] = options[:preserve].to_sym return options end
parse(argv)
click to toggle source
# File lib/vanagon/cli/build.rb, line 33 def parse(argv) Docopt.docopt(DOCUMENTATION, { argv: argv }) rescue Docopt::Exit => e VanagonLogger.error e.message exit 1 end
run(options)
click to toggle source
# File lib/vanagon/cli/build.rb, line 40 def run(options) # rubocop:disable Metrics/AbcSize project = options[:project_name] platform_list = options[:platforms].split(',') target_list = [] unless options[:targets].nil? || options[:targets].empty? target_list = options[:targets].split(',') end only_build = [] unless options[:only_build].nil? || options[:only_build].empty? only_build = options[:only_build].split(',') end platform_list.zip(target_list).each do |pair| platform, target = pair artifact = Vanagon::Driver.new(platform, project, options.merge({ :target => target, :only_build => only_build })) artifact.run end end