Commits on Apr 19, 2010
  1. clock: allow custom commit messages for edits

    Clocking in and out are fairly self-explanatory. But edits
    generally require a message explaining why the usual cycle
    was broken.
    committed Apr 19, 2010
  2. clock: refactor command-specific logic

    Until now, the only interesting property of a command was
    whether it was a mutator. However, that will change in the
    next commit. Restructure the code to handle other
    committed Apr 19, 2010
Commits on Feb 2, 2010
  1. clock: respect TIMECARD_HOME for data location

    Besides simply allowing alternate locations, it allows you
    to keep multiple timecards using aliases.
    committed Feb 2, 2010
Commits on Dec 15, 2009
  1. remove

    Recent mfm now has this as a module.
    committed Dec 15, 2009
Commits on Dec 14, 2009
  1. add MFM-PERLLIB

    The 'caseless' branch of mfm is now configurable; we need to
    actually tell it we want the alternate lib directory.
    committed Dec 14, 2009
Commits on Nov 12, 2009
  1. convert MFM infrastructure to caseless branch

    This should allow building on case-insensitive filesystems.
    committed Nov 12, 2009
Commits on Nov 6, 2009
  1. TimeSlot: make sure comments always exists

    When reading a slot with no comments from a file, we left
    the 'comments' field undefined, when it should have been an
    empty array ref. This could lead to a run-time perl error.
    Hurray for Perl.
    committed Nov 6, 2009
Commits on Nov 5, 2009
  1. show inprogress duration for timecard summary

    It is nice for double-checking that you have been punched in
    a reasonable amount of time. It's also a nice motivator to
    see it going up.
    committed Nov 5, 2009
  2. refactor "hours" printing

    This gives us a helper function as part of
    DateTime::Duration. It is perhaps a bit ugly to be adding
    methods onto somebody else's object, but it makes the usage
    much nicer.
    committed Nov 5, 2009
  3. add README

    committed Nov 5, 2009
  4. add 'clock' script

    This wraps the timecard program to provide a
    pseudo-"distributed" timecard. We use a git repository to
    push and pull changes from a central location, which should
    notice any problems with multiple simultaneous updates
    (though it will do nothing but just barf and let you fix up
    the result yourself, so you do need to be at least a little
    bit git-competent).
    committed Nov 5, 2009
  5. respect TIMECARD environment variable

    This lets you use a different timecard than the default, in
    preparation for putting the file into a repository
    committed Nov 5, 2009
  6. rename 'clock' to 'timecard'

    I want the clock script to do more things that aren't really
    timecard-specific, so let's fork off that bit of
    functionality into its own script. Arguably, timecard is a
    better name, anyway.
    committed Nov 5, 2009
Commits on Nov 2, 2009
  1. make "clock" without arguments meaningful

    It just shows whether you're punched in or not. Handy if you
    think you might have forgotten.
    committed Nov 2, 2009
Commits on Oct 21, 2009
  1. add 'list' subcommand

    The 'sum' subcommand will tell you the total hours, but
    sometimes it is nice to see a breakdown by task cluster of
    what actually happened.
    committed Oct 21, 2009
  2. detect backwards time

    It is easy when crossing day boundaries to change a time,
    but not a day, and then end up ending a task half a day
    before it started. Let's flag this error instead of just
    producing a totally bogus duration.
    committed Oct 21, 2009
  3. fix bug with summing inprogress times

    This caused a perl exception. The problem was that we were
    feeding a string time for 'now' into a DateTime::Duration
    committed Oct 21, 2009
  4. add 'comment' subcommand

    Handy for updating the entry as you do tasks, rather than
    remembering at the end when you clock out.
    committed Oct 21, 2009
  5. TimeCard: factor out method for current open timeslot

    This will be handy for other things that modify the open
    slot, like a 'comment' command.
    committed Oct 21, 2009
  6. fix bug with missing output comments

    Doing "clock out foo" would fail to write out the "foo"
    comment.  This was caused by a typo in the hash element
    name. Huzzah for dynamic structs!
    committed Oct 21, 2009
Commits on Oct 15, 2009
  1. add 'sum' subcommand

    This actually tallies up a timecard. Handy for submitting
    committed Oct 15, 2009
  2. initial commit of clock

    This is a very simple timekeeper program. It stores time
    slots in a text file, and is only moderately less work than
    editing the file by hand. You can do:
      $ clock in some comments on what you are doing
      $ clock out some more comments if you want
    committed Oct 15, 2009