Add marginally more helpful usage messages, make `get` subcommand always succeed.

main
diff 2020-11-14 06:44:06 +00:00
parent 48b89eaff5
commit dc8e969cd4
1 changed files with 9 additions and 8 deletions

17
main.go
View File

@ -21,19 +21,20 @@ func main() {
fmt.Fprintf(os.Stderr, "Could not set: %v", err) fmt.Fprintf(os.Stderr, "Could not set: %v", err)
} }
case "get": case "get":
err := GetStatus(flag.Args()[1:]) GetStatus(flag.Args()[1:])
if err != nil {
fmt.Fprintf(os.Stderr, "Could not get: %v", err)
}
default: default:
fmt.Printf("Usage:\n\t%v <set|get> [--help]\n", os.Args[0]) fmt.Printf("Usage:\n")
fmt.Printf("\t%v set [--include-wd] [status]\n", os.Args[0])
fmt.Printf("\t\tstatuses must begin with your username")
fmt.Printf("\t%v get", os.Args[0])
flag.PrintDefaults() flag.PrintDefaults()
GetStatus(flag.Args()[1:])
} }
} }
// GetStatus collects all recent statuses from all users on the system. // GetStatus collects all recent statuses from all users on the system.
// Any errors that occur while pulling individual statuss are silently ignored // Any errors that occur while pulling individual statuss are silently ignored
func GetStatus(args []string) error { func GetStatus(args []string) {
getFlags := flag.NewFlagSet(os.Args[0]+" get", flag.ExitOnError) getFlags := flag.NewFlagSet(os.Args[0]+" get", flag.ExitOnError)
freshDays := getFlags.Int("freshness", 14, "get all statuses newer than this number of days") freshDays := getFlags.Int("freshness", 14, "get all statuses newer than this number of days")
getFlags.Parse(args) getFlags.Parse(args)
@ -43,7 +44,7 @@ func GetStatus(args []string) error {
allStatusPaths, err := filepath.Glob("/home/*/.checkin") allStatusPaths, err := filepath.Glob("/home/*/.checkin")
if err != nil { if err != nil {
// *Should* never happen, since path is hardcoded and that's the only reason Glob can error out. // *Should* never happen, since path is hardcoded and that's the only reason Glob can error out.
return err panic(err)
} }
// Filter out any statuses that are older than our cutoff time. // Filter out any statuses that are older than our cutoff time.
@ -83,7 +84,7 @@ func GetStatus(args []string) error {
fmt.Println(status) fmt.Println(status)
} }
return nil return
} }
// SetStatus sets the curent user's status, either by reading the value from the command line or by prompting the user to input it interactively. // SetStatus sets the curent user's status, either by reading the value from the command line or by prompting the user to input it interactively.