Brak opisu

deadlines.rb 924B

    #!/usr/bin/env ruby require 'json' def ask_for_task() `zenity --forms --add-entry 'Task name' --add-list 'Task duration' --list-values='15min|30min|1h|2h'` end def parse_task(task_answer) task_name, task_duration = task_answer.strip().split('|') duration = parse_duration(task_duration) {name: task_name, end: Time.now + duration} end def parse_duration(duration) case duration when '15min' 15 * 60 when '30min' 30 * 60 when '1h' 60 * 60 when '2h' 2 * 60 * 60 else 15 * 60 end end class File def self.append(name, str) write(name, str, {mode: 'a'}) end end def answer_once() answer = ask_for_task() task = parse_task(answer) puts("-- working on '#{task[:name]}' until #{task[:end]}") File.append("#{File.join(Dir.home, ".deadlines.json")}", JSON.dump(task) + "\n") sleep(task[:end] - Time.now) end if __FILE__ == $0 while true answer_once() end end