Ver Código Fonte

~/.bin/working-time.go: Support tracking duration of breaks

You call `working-time break` at the start and end of the break, and it
calculates how long your break was.
Lu Stadler 7 anos atrás
pai
commit
05ac99b9c5
1 arquivos alterados com 16 adições e 3 exclusões
  1. 16 3
      .bin/working-time.go

+ 16 - 3
.bin/working-time.go

@ -14,8 +14,9 @@ import (
14 14
15 15
// Day contains information about how long you've worked today.
16 16
type Day struct {
17
	Start time.Time     `json:"start"`
18
	Break time.Duration `json:"break,omitempty"`
17
	Start      time.Time     `json:"start"`
18
	Break      time.Duration `json:"break,omitempty"`
19
	BreakStart *time.Time    `json:"break-start,omitempty"`
19 20
}
20 21
21 22
// modes:
@ -34,7 +35,19 @@ func main() {
34 35
		writeDay(dayFile, day)
35 36
	}
36 37
37
	if len(os.Args) > 2 && os.Args[1] == "break" {
38
	if len(os.Args) == 2 && os.Args[1] == "break" {
39
		if day.BreakStart != nil {
40
			dur := now.Sub(*day.BreakStart)
41
			day.Break += dur
42
			day.BreakStart = nil
43
			fmt.Fprintf(os.Stderr, "took a %s break\n", dur)
44
		} else {
45
			day.BreakStart = &now
46
		}
47
		writeDay(dayFile, day)
48
	}
49
50
	if len(os.Args) == 3 && os.Args[1] == "break" {
38 51
		dur, err := time.ParseDuration(os.Args[2])
39 52
		if err != nil {
40 53
			fmt.Fprintln(os.Stderr, err)