class MiGA::Cli::Action::AddResult

Public Instance Methods

parse_cli() click to toggle source
# File lib/miga/cli/action/add_result.rb, line 7
def parse_cli
  cli.defaults = { force: false, stdin_versions: false }
  cli.parse do |opt|
    cli.opt_object(opt, [:project, :dataset_opt, :result])
    opt.on(
      '-f', '--force',
      'Force re-indexing of the result even if it\s already registered'
    ) { |v| cli[:force] = v }
    opt.on(
      '--stdin-versions',
      'Read Software versions from STDIN'
    ) { |v| cli[:stdin_versions] = v }
  end
end
perform() click to toggle source
# File lib/miga/cli/action/add_result.rb, line 22
def perform
  cli.ensure_par(result: '-r')
  obj = cli.load_project_or_dataset
  cli.say "Registering result: #{cli[:result]}"
  r = obj.add_result(cli[:result], true, force: cli[:force])
  raise 'Cannot add result, incomplete expected files' if r.nil?

  # Add Software version data
  if cli[:stdin_versions]
    versions = {}
    sw = nil
    $stdin.each do |ln|
      ln = ln.chomp.strip
      if ln =~ /^=> (.*)/
        sw = $1
        versions[sw] = ''
      else
        versions[sw] += ln
      end
    end
    r.add_versions(versions)
    r.save
  end
end