package main import ( "os" "io" "fmt" "golang.flu0r1ne.net/zfdiff/cmd" ) func printUsage(w io.Writer) { fmt.Fprintf (w, "usage: %s command args ... \n", os.Args[0]) fmt.Fprintln(w, " help ") fmt.Fprintln(w, " version ") fmt.Fprintln(w, " list [-paths|-p] ") fmt.Fprintln(w, " diff [-walk|-w] .. ") fmt.Fprintln(w, " cat ") fmt.Fprintln(w, " overwrite [-backup|-b] ") } func dieUsage() { printUsage(os.Stderr) os.Exit(1) } func main() { if len(os.Args) < 2 { dieUsage() } subcommand := os.Args[1] subargs := os.Args[2:] switch subcommand { case "list": cmd.List(subargs) case "overwrite": cmd.Overwrite(subargs) case "cat": cmd.Cat(subargs) case "diff": cmd.Diff(subargs) case "-h", "-help", "--help", "help": printUsage(os.Stdout) default: fmt.Fprintf(os.Stderr, "unrecognized command %s\n", subcommand) dieUsage() } }