46 lines
860 B
Go
46 lines
860 B
Go
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
|
|
}
|