package main import ( "fmt" "os" "os/exec" ) type TimeWarrior struct{} func NewTimeWarrior() *TimeWarrior { return &TimeWarrior{} } func (t *TimeWarrior) runCommand(args ...string) error { cmd := exec.Command("timew", args...) cmd.Stdout = os.Stdout cmd.Stdin = os.Stdin cmd.Stderr = os.Stderr return cmd.Run() } func (t *TimeWarrior) StartWork() error { return t.runCommand("start", "work") } func (t *TimeWarrior) StopWork() error { return t.runCommand("stop", "work") } func (t *TimeWarrior) StartBreak() error { return t.runCommand("track", "break") } func (t *TimeWarrior) StopBreak() error { return t.runCommand("track", "work") } func (t *TimeWarrior) ShowSummary(period string) error { return t.runCommand("summary", period, "work") } func (t *TimeWarrior) ExportSummary() error { fmt.Println("Export Timetable") return nil }