diff options
| -rw-r--r-- | cmds/list.go | 21 | ||||
| -rw-r--r-- | main.go | 47 | 
2 files changed, 66 insertions, 2 deletions
| 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); +} @@ -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] <reference>                             ") +	fmt.Fprintln(w, "  diff [-walk|-w]  <snap-ish>..<snap-ish> <reference>      ") +	fmt.Fprintln(w, "  cat  <snap-ish> <reference>                              ") +	fmt.Fprintln(w, "  overwrite [-backup|-b] <snap-ish> <reference>            ") +} + +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() +	} +    } | 
