X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/593ed179715e007763a027919b38b69b8bb7d59d..91dc5f1d7f5ad9eb2640f6089e2d0476cbf87c8e:/sdk/cli/bin/arv-run-pipeline-instance?ds=sidebyside diff --git a/sdk/cli/bin/arv-run-pipeline-instance b/sdk/cli/bin/arv-run-pipeline-instance index 70e2f42ede..bcb11d1d70 100755 --- a/sdk/cli/bin/arv-run-pipeline-instance +++ b/sdk/cli/bin/arv-run-pipeline-instance @@ -17,7 +17,7 @@ begin require 'trollop' require 'google/api_client' rescue LoadError => l - puts $: + $stderr.puts $: abort <<-EOS #{$0}: fatal: #{l.message} Some runtime dependencies may be missing. @@ -132,7 +132,7 @@ if $options[:instance] abort "#{$0}: syntax error: --instance cannot be combined with --template or --submit." end elsif not $options[:template] - puts "error: you must supply a --template or --instance." + $stderr.puts "error: you must supply a --template or --instance." p.educate abort end @@ -364,22 +364,25 @@ class WhRunPipelineInstance @components.each do |componentname, component| component[:script_parameters].each do |parametername, parameter| parameter = { :value => parameter } unless parameter.is_a? Hash - value = - (params["#{componentname}::#{parametername}"] || - parameter[:value] || - (parameter[:output_of].nil? && - (params[parametername.to_s] || - parameter[:default])) || - nil) - if value.nil? and - ![false,'false',0,'0'].index parameter[:required] - if parameter[:output_of] - if not @components[parameter[:output_of].intern] - errors << [componentname, parametername, "output_of refers to nonexistent component '#{parameter[:output_of]}'"] - end - next + if params.has_key?("#{componentname}::#{parametername}") + value = params["#{componentname}::#{parametername}"] + elsif parameter.has_key?(:value) + value = parameter[:value] + elsif parameter.has_key?(:output_of) + if !@components[parameter[:output_of].intern] + errors << [componentname, parametername, "output_of refers to nonexistent component '#{parameter[:output_of]}'"] + else + # value will be filled in later when the upstream + # component's output becomes known end + next + elsif params.has_key?(parametername.to_s) + value = params[parametername.to_s] + elsif parameter.has_key?(:default) + value = parameter[:default] + else errors << [componentname, parametername, "required parameter is missing"] + next end debuglog "parameter #{componentname}::#{parametername} == #{value}"