#!/usr/local/bin/ruby -Ke $KCONV = 'euc' # パーミッションはこんな感じで。 # 705 set_status.rb # # @options['status.status_list_file'] = "ステータスリストファイル" # @options['status.status_file'] = "現在のステータスファイル" begin if FileTest::symlink?( __FILE__ ) then org_path = File::dirname( File::readlink( __FILE__ ) ) else org_path = File::dirname( __FILE__ ) end $:.unshift org_path require 'tdiary' require 'cgi' if TDIARY_VERSION > '1.5' @conf = TDiary::Config.new @options = @conf.options end @filename = File::basename($0) @status_list = @options['status.status_list_file'] || "#{@conf.data_path}status_list" @status = @options['status.status_file'] || "#{@conf.data_path}status" def get_status_list() begin File::open(@status_list).read.split("\n") rescue ['仕事', '休憩', '外出'] end end def set_status_list(status_list) begin File::open(@status_list, 'w') {|f| f.write status_list} rescue end end def get_now_status() begin File::open(@status).read rescue '仕事' end end def set_now_status(status) begin File::open(@status, 'w') {|f| f.write status} rescue end end def output_header() print "Content-Type: text/html; charset=EUC-jp\r\n\r\n" end def show_status(cgi) status_list = get_status_list() now_status = get_now_status() status_list.collect! do |x| x = CGI.escapeHTML(x) if now_status == x %Q!#{x}
! else %Q!#{x}
! end end output_header() print <<-HTML .gsub(/^\t\t/, '') ステータス変更
#{status_list.join("\n")}
HTML end def show_setting(cgi) status_list = get_status_list() output_header() print <<-HTML .gsub(/^\t\t/, '') ステータスリスト更新

戻る HTML end def update_status(cgi) set_now_status(cgi['STATUS'][0]) show_status(cgi) end def update_status_list(cgi) set_status_list(cgi['STATUSLIST'][0]) show_status(cgi) end cgi = CGI.new case cgi["MODE"][0] when 'update' update_status(cgi) when 'setting' show_setting(cgi) when 'update_status_list' update_status_list(cgi) else show_status(cgi) end rescue puts "Content-Type: text/plain\n\n" puts "#$! (#{$!.type})" puts "" puts $@.join( "\n" ) end