lib/td/command/sched.rb in td-0.10.22 vs lib/td/command/sched.rb in td-0.10.23

- old
+ new

@@ -9,52 +9,65 @@ scheds = client.schedules rows = [] scheds.each {|sched| - rows << {:Name => sched.name, :Cron => sched.cron, :Timezone => sched.timezone, :Delay => sched.delay, :Result => sched.rset_name, :Database => sched.database, :Query => sched.query, :"Next schedule" => sched.next_time ? sched.next_time.localtime : nil } + rows << {:Name => sched.name, :Cron => sched.cron, :Timezone => sched.timezone, :Delay => sched.delay, :Result => sched.result_url, :Database => sched.database, :Query => sched.query, :"Next schedule" => sched.next_time ? sched.next_time.localtime : nil } } rows = rows.sort_by {|map| map[:Name] } puts cmd_render_table(rows, :fields => [:Name, :Cron, :Timezone, :"Next schedule", :Delay, :Result, :Database, :Query], :max_width=>500) end def sched_create(op) db_name = nil - result = nil timezone = nil delay = 0 + result_url = nil + result_user = nil + result_ask_password = false op.on('-d', '--database DB_NAME', 'use the database (required)') {|s| db_name = s } - op.on('-r', '--result RESULT_TABLE', 'write result to the result table (use result:create command)') {|s| - result = s - } op.on('-t', '--timezone TZ', 'name of the timezone (like Asia/Tokyo)') {|s| timezone = s } op.on('-D', '--delay SECONDS', 'delay time of the schedule', Integer) {|i| delay = i } + op.on('-r', '--result RESULT_URL', 'write result to the URL (see also result:create subcommand)') {|s| + result_url = s + } + op.on('-u', '--user NAME', 'set user name for the result URL') {|s| + result_user = s + } + op.on('-p', '--password', 'ask password for the result URL') {|s| + result_ask_password = true + } name, cron, sql = op.cmd_parse unless db_name $stderr.puts "-d, --database DB_NAME option is required." exit 1 end + if result_url + require 'td/command/result' + result_url = build_result_url(result_url, result_user, result_ask_password) + end + client = get_client # local existance check get_database(client, db_name) begin - first_time = client.create_schedule(name, :cron=>cron, :query=>sql, :database=>db_name, :result=>result, :timezone=>timezone, :delay=>delay) + first_time = client.create_schedule(name, :cron=>cron, :query=>sql, :database=>db_name, :result=>result_url, :timezone=>timezone, :delay=>delay) rescue AlreadyExistsError cmd_debug_error $! $stderr.puts "Schedule '#{name}' already exists." exit 1 end @@ -170,17 +183,17 @@ puts "Name : #{s.name}" puts "Cron : #{s.cron}" puts "Timezone : #{s.timezone}" puts "Delay : #{s.delay} sec" puts "Next : #{s.next_time}" - puts "Result : #{s.rset_name}" + puts "Result : #{s.result_url}" puts "Database : #{s.database}" puts "Query : #{s.query}" end rows = [] history.each {|j| - rows << {:Time => j.scheduled_at.localtime, :JobID => j.job_id, :Status => j.status, :Result=>j.rset_name} + rows << {:Time => j.scheduled_at.localtime, :JobID => j.job_id, :Status => j.status, :Result=>j.result_url} } puts cmd_render_table(rows, :fields => [:JobID, :Time, :Status, :Result]) end