def submit
set_q
@priority = @options['priority']
debug{ "priority <#{ @priority }>" }
@tag = @options['tag']
debug{ "tag <#{ @tag }>" }
@runner = @options['runner']
debug{ "runner <#{ @runner }>" }
@restartable = @options['restartable']
debug{ "restartable <#{ @restartable }>" }
@infile = @options['infile']
debug{ "infile <#{ @infile }>" }
@stage = @options['stage']
debug{ "stage <#{ @stage }>" }
jobs = []
unless @argv.empty?
job = Job::new
job['command'] = @argv.join(' ')
job['priority'] = @priority
job['tag'] = @tag
job['runner'] = @runner
job['restartable'] = @restartable
jobs << job
end
if @infile
open(@infile) do |f|
debug{ "reading jobs from <#{ @infile }>" }
loadio f, @infile, jobs
end
end
if jobs.empty? or not STDIN.tty?
debug{ "reading jobs from <stdin>" }
loadio STDIN, 'stdin', jobs
end
raise "no jobs specified!" if jobs.empty?
state = @stage ? 'holding' : 'pending'
jobs.each do |job|
job['state'] = state
job['priority'] = @priority if @priority
job['tag'] = @tag if @tag
job['runner'] = @runner if @runner
job['restartable'] = @restartable if @restartable
end
if @options['quiet']
@q.submit(*jobs)
else
puts '---'
@q.submit(*jobs) do |tuple|
puts '-'
tuple.fields.each{|f| puts " #{ f }: #{ tuple[ f ] }"}
end
end
jobs = nil
self
end