Merge pull request #50 from amiel/json-status

Allow pomo status --json
This commit is contained in:
Kevin Schoon 2021-10-14 10:32:51 -05:00 committed by GitHub
commit 9a1f53e0bc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 14 additions and 2 deletions

View File

@ -257,16 +257,28 @@ pomo delete 5 10 20
func _status(config *pomo.Config) func(*cli.Cmd) { func _status(config *pomo.Config) func(*cli.Cmd) {
return func(cmd *cli.Cmd) { return func(cmd *cli.Cmd) {
cmd.Spec = "[OPTIONS]" cmd.Spec = "[OPTIONS]"
var asJSON = cmd.BoolOpt("json", false, "output task history as JSON")
cmd.Action = func() { cmd.Action = func() {
client, err := pomo.NewClient(config.SocketPath) client, err := pomo.NewClient(config.SocketPath)
if err != nil { if err != nil {
fmt.Println(pomo.FormatStatus(pomo.Status{})) if *asJSON {
maybe(json.NewEncoder(os.Stdout).Encode(pomo.Status{}))
} else {
fmt.Println(pomo.FormatStatus(pomo.Status{}))
}
return return
} }
defer client.Close() defer client.Close()
status, err := client.Status() status, err := client.Status()
maybe(err) maybe(err)
fmt.Println(pomo.FormatStatus(*status))
if *asJSON {
maybe(json.NewEncoder(os.Stdout).Encode(status))
} else {
fmt.Println(pomo.FormatStatus(*status))
}
} }
} }
} }