From 8d802bff08826523371ab5e951d85d0c0396ccc8 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Sat, 3 Jun 2017 16:26:17 +0200 Subject: Add command line argument parsing * Use the Kingpin library to give us POSIX command line argument parsing with a nice interface * Add arguments for the project alias (specified in config.toml), time spent, date, and description * Add a version, required by Kingpin --- main.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'main.go') diff --git a/main.go b/main.go index 41245db..fedd7b5 100644 --- a/main.go +++ b/main.go @@ -8,6 +8,7 @@ import ( "github.com/teddywing/timetasker/timetask" "github.com/BurntSushi/toml" + "gopkg.in/alecthomas/kingpin.v2" ) type Config struct { @@ -24,6 +25,27 @@ var config Config func main() { loadConfig() + // Parse command line arguments + project_alias := kingpin.Flag( + "project", + "Project alias defined in config.toml.", + ). + Short('p'). + Required(). + String() + time_spent := kingpin.Flag("time", "Time spent working on project."). + Short('t'). + Default("7"). + Int() + date := kingpin.Flag("date", "Date when work was done (e.g. 2017-01-31)"). + String() + description := kingpin.Flag("description", "Description of work."). + Short('m'). + String() + kingpin.Version("0.1.0") + kingpin.Parse() + + // Submit time entry resp, client, err := timetask.Login( config.Auth.Username, config.Auth.PasswordCmd, -- cgit v1.2.3