diff options
author | Katharina Fey <kookie@spacekookie.de> | 2019-08-04 02:21:22 +0200 |
---|---|---|
committer | Katharina Fey <kookie@spacekookie.de> | 2019-08-04 02:21:22 +0200 |
commit | 7fd0a464821aa9ad9ef0d5a16d0bedecdf83c542 (patch) | |
tree | 709326434d2ec2f1cd1f872f04899852401b2dc8 /stop.rb | |
parent | c951ce7fa7aafc01997599e8ebd694c5a1178a09 (diff) |
First functional version
Has a few problems:
- Doesn't properly indent entries
- Only processes _first_ open account
- Doesn't catch enough errors
- CLI parsing sucks
Diffstat (limited to 'stop.rb')
-rw-r--r-- | stop.rb | 32 |
1 files changed, 32 insertions, 0 deletions
@@ -0,0 +1,32 @@ +""" +This file is part of cassiopeia and licensed +under the GNU Public License 3.0 (or later) + +cassiopeia-stop - stop working on an account + +This file is included and run from cass(1) +""" + +require "time" +require_relative "time_util" + +def stop(account, round, file = []) + rel = file.select { |i| i[:title].to_s.include? account } + + # This is a kind of fuzzy find + account = rel[0][:title].to_s[0..-2] + + jobs = rel.select { |i| i[:stop] == nil } + if jobs.length == 0 + STDERR.puts "No unfinished accounts for '#{account}'!" + exit 2 + end + + STDERR.puts "[Warn]: More than one dangling account!" unless jobs.length == 1 + job = jobs[0] + line, _ = job[:title].line_and_column + + # We return the line number too, so that we can inset correctly + return line, "#{account}:\ + #{job[:start]} - #{round ? Time.now.round : Time.now}" +end |