From 00e03ce591b5aea612d5257b935402ddeca6c1c6 Mon Sep 17 00:00:00 2001 From: flu0r1ne Date: Wed, 21 Jul 2021 19:12:45 -0500 Subject: Directory structure for list cmd --- cmds/list.go | 21 +++++++++++++++++++++ main.go | 47 +++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 cmds/list.go diff --git a/cmds/list.go b/cmds/list.go new file mode 100644 index 0000000..14fa53d --- /dev/null +++ b/cmds/list.go @@ -0,0 +1,21 @@ +package cmd + +import ( + "flag" + "fmt" +) + +func List(params []string) { + flags := flag.NewFlagSet("list", flag.ExitOnError) + + var withPaths bool + + const WITH_PATHS_HELP = "print paths to the provided reference within the snapshot" + + flags.BoolVar(&withPaths, "paths", false, WITH_PATHS_HELP); + flags.BoolVar(&withPaths, "p", false, WITH_PATHS_HELP); + + flags.Parse(params); + + fmt.Printf("Your flag is: %t", withPaths); +} diff --git a/main.go b/main.go index 8bc5cc2..ea477f4 100644 --- a/main.go +++ b/main.go @@ -1,7 +1,50 @@ package main -import "fmt" +import ( + "os" + "io" + "fmt" + "golang.flu0r1ne.net/zfdiff/cmds" +) + +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() { - fmt.Println("Hello"); + + if len(os.Args) < 2 { + dieUsage() + } + + subcommand := os.Args[1] + subargs := os.Args[2:] + + switch subcommand { + case "list": + cmd.List(subargs) + case "overwrite": + //overwrite(subargs) + case "cat": + //cmd.Cat(subargs) + case "diff": + //diff(subargs) + case "-h", "-help", "--help", "help": + printUsage(os.Stdout) + default: + fmt.Fprintf(os.Stderr, "unrecognized command %s\n", subcommand) + dieUsage() + } + } -- cgit v1.2.3