aboutsummaryrefslogtreecommitdiffstats
path: root/main.go
diff options
context:
space:
mode:
authorTeddy Wing2017-06-03 21:36:20 +0200
committerTeddy Wing2017-06-03 21:37:43 +0200
commitf5b1fb3d0ef37ed44b8f7302343dcd5cd16bd725 (patch)
tree58b43be49d3e470d68543ced658c22c9ea07bf9b /main.go
parent403c92bf583cec66677d93ea470ec58312c8240b (diff)
downloadtimetasker-f5b1fb3d0ef37ed44b8f7302343dcd5cd16bd725.tar.bz2
Make the `password_cmd` config setting work
Given a string from `password_cmd`, we should execute it as a shell command and assume the result is a password. That password then gets submitted to TimeTask's login form for authentication. Had to do a bit of wrangling to get the command to execute by `exec.Command()`, but managed to get it working in a bit of a roundabout way. Found these resources in my searches: - https://stackoverflow.com/questions/39930109/golang-execute-command#39930127 https://stackoverflow.com/questions/28783637/how-to-make-golang-execute-a-string - https://stackoverflow.com/questions/20437336/how-to-execute-system-command-in-golang-with-unknown-arguments - https://github.com/codeskyblue/go-sh
Diffstat (limited to 'main.go')
-rw-r--r--main.go5
1 files changed, 4 insertions, 1 deletions
diff --git a/main.go b/main.go
index ae18a87..ab0fc4a 100644
--- a/main.go
+++ b/main.go
@@ -87,9 +87,12 @@ func main() {
*description,
)
+ password, err := passwordCmd(config.Auth.PasswordCmd)
+ kingpin.FatalIfError(err, "password command failed")
+
resp, client, err := timetask.Login(
config.Auth.Username,
- config.Auth.PasswordCmd,
+ password,
)
kingpin.FatalIfError(err, "Login request failed")
log.Printf("%+v\n", resp)