diff options
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 19 |
1 files changed, 17 insertions, 2 deletions
@@ -25,6 +25,8 @@ type Config struct { var config Config func main() { + var err error + loadConfig() // Parse command line arguments @@ -39,7 +41,7 @@ func main() { Short('t'). Default("7"). Int() - date := kingpin.Flag("date", "Date when work was done (e.g. 2017-01-31)"). + date_str := kingpin.Flag("date", "Date when work was done (e.g. 2017-01-31)"). Short('d'). String() description := kingpin.Flag("description", "Description of work."). @@ -55,10 +57,23 @@ func main() { os.Exit(1) } + var date time.Time + + // If the date argument isn't sent, default to today + if *date_str == "" { + date = time.Now() + } else { + date, err = time.Parse("2006-01-02", *date_str) + if err != nil { + fmt.Printf("Date '%s' could not be parsed. Example: -d 2017-01-31\n", *date_str) + os.Exit(1) + } + } + time_entry := timetask.NewTimeEntry( config.Profile, project, - time.Now(), + date, *time_spent, *description, ) |