Sfoglia il codice sorgente

Allow arguments to the default command

I.e. `remind today` is equivalent to `remind list today` now.
Lucas Stadler 9 anni fa
parent
commit
67b8b7b2b0
1 ha cambiato i file con 26 aggiunte e 19 eliminazioni
  1. 26 19
      go/remind/remind.go

+ 26 - 19
go/remind/remind.go

@ -26,13 +26,18 @@ var flags struct {
26 26
27 27
func init() {
28 28
	flag.BoolVar(&flags.showAll, "all", false, "Show all reminders")
29
30
func isCommand(s string) bool {
31
	return s == "list" || s == "l" || s == "add"
29 32
}
30 33
31 34
func main() {
32 35
	flag.Parse()
33 36
37
	start := 0
34 38
	cmd := "list"
35
	if flag.NArg() >= 1 {
39
	if flag.NArg() >= 1 && isCommand(flag.Arg(0)) {
40
		start = 1
36 41
		cmd = flag.Arg(0)
37 42
	}
38 43
@ -53,15 +58,33 @@ func main() {
53 58
	}
54 59
55 60
	switch cmd {
61
	case "add":
62
		if flag.NArg() != 3 {
63
			flag.Usage()
64
			os.Exit(1)
65
		}
66
67
		date, err := parseTime(flag.Arg(1))
68
		if err != nil {
69
			exit(err)
70
		}
71
		description := flag.Arg(2)
72
		reminders = append(reminders, Reminder{Date: date, Description: description})
73
		needWrite = true
56 74
	case "list", "l":
75
		fallthrough
76
	default:
57 77
		min := time.Now()
58 78
		max := min.AddDate(0, 0, 7)
59 79
60
		if flag.NArg() > 1 {
61
			switch flag.Arg(1) {
80
		if flag.NArg() > start {
81
			switch flag.Arg(start) {
62 82
			case "today":
63 83
				min = truncateHours(time.Now())
64 84
				max = min.Add(24 * time.Hour)
85
			default:
86
				fmt.Fprintf(os.Stderr, "unknown command '%s'\n", cmd)
87
				os.Exit(1)
65 88
			}
66 89
		}
67 90
@ -71,22 +94,6 @@ func main() {
71 94
				fmt.Printf("%s - %s\n", r.Date, r.Description)
72 95
			}
73 96
		}
74
	case "add":
75
		if flag.NArg() != 3 {
76
			flag.Usage()
77
			os.Exit(1)
78
		}
79
80
		date, err := parseTime(flag.Arg(1))
81
		if err != nil {
82
			exit(err)
83
		}
84
		description := flag.Arg(2)
85
		reminders = append(reminders, Reminder{Date: date, Description: description})
86
		needWrite = true
87
	default:
88
		fmt.Fprintf(os.Stderr, "unknown command '%s'\n", cmd)
89
		os.Exit(1)
90 97
	}
91 98
92 99
	if needWrite {