""" 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