aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2017-06-03 16:26:17 +0200
committerTeddy Wing2017-06-03 16:26:17 +0200
commit8d802bff08826523371ab5e951d85d0c0396ccc8 (patch)
tree68452ca770efe9689e28d7b5f98697153b2ace67
parent47ec5ffeea72fff2019636be2c97ee36fcd176a6 (diff)
downloadtimetasker-8d802bff08826523371ab5e951d85d0c0396ccc8.tar.bz2
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
-rw-r--r--main.go22
1 files changed, 22 insertions, 0 deletions
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,