From 845521f1a80900d95204b4d47d6f245fba05a95c Mon Sep 17 00:00:00 2001 From: Brian Buller Date: Wed, 20 Sep 2017 18:04:39 -0500 Subject: [PATCH] Working on it --- main.go | 57 ++++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 46 insertions(+), 11 deletions(-) diff --git a/main.go b/main.go index a61643b..913d15a 100644 --- a/main.go +++ b/main.go @@ -16,6 +16,16 @@ var cfg *userConfig.Config // Valid command line options var validFlags []cliFlag +const ( + OpSearch = iota + OpAdd + OpUpdate + OpDelete + OpError +) + +var performOp = OpSearch + func main() { err := initialize() if err != nil { @@ -23,11 +33,24 @@ func main() { os.Exit(1) } - // If no command line options are given, go into gui mode - if len(os.Args) > 1 { - fmt.Println(os.Args[1]) - if os.Args[1] == "-a" { - // Adding a new bookmark + parms := os.Args + if len(parms) > 1 { + parms = parms[1:] + for _, v := range parms { + switch v { + case "-h": + printUsage() + os.Exit(0) + case "-a": + // Adding a new bookmark + setOperation(OpAdd) + case "-u": + // Updating an existing bookmark + setOperation(OpUpdate) + case "-d": + // Delete an existing bookmark + setOperation(OpDelete) + } } } else { // Enter cui mode @@ -35,13 +58,25 @@ func main() { } } +func setOperation(which int) { + if performOp != OpSearch || which >= OpError { + // We've already tried to set the operation + fmt.Println("Error parsing command. For help use '-h'.") + os.Exit(1) + } + performOp = which +} + // initialize sets up the application for general use func initialize() error { var err error // Build the list of valid command line options - addValidFlag("-a", "add", []string{"Add a new bookmark"}) addValidFlag("-h", "help", []string{"Print the usage (this message)"}) - addValidFlag("-n", "name", []string{ + addValidFlag("-a", "add", []string{"Add a new bookmark"}) + addValidFlag("-u", "update", []string{"Update an existing bookmark"}) + addValidFlag("-d", "delete", []string{"Delete an existing bookmark"}) + addValidFlag("-s", "search", []string{"Search for a bookmark"}) + addValidFlag("-n", "name (optional)", []string{ "When adding/updating, specify the name you wish to give a bookmark.", "When searching, specifiy the name of the bookmark(s) you're searching for.", }) @@ -50,7 +85,6 @@ func initialize() error { "When adding/updating, specify the tags you wish to give a bookmark.", "When searching, specifiy the name of the tags you're searching for.", }) - addValidFlag("-u", "update", []string{"Update an existing bookmark"}) // Load the config cfg, err = userConfig.NewConfig(AppName) @@ -89,9 +123,10 @@ func printUsage() { "mark is a tool for keeping your bookmarks organized", "", "Usage: ", - "\tmark", + "\tmark [operation] [optional flags]", "", "If no arguments are given, we enter gui mode", + "If no 'operation' arguments are given (-a, -u, -d, -s) search is assumed", "", "Valid arguments are:", "", @@ -100,9 +135,9 @@ func printUsage() { fmt.Println(ln) } for _, v := range validFlags { - fmt.Println(v.Flag, "\t", v.Name) + fmt.Println("\t", v.Flag, "\t", v.Name) for _, hv := range v.Description { - fmt.Println("\t", hv) + fmt.Println("\t\t\t", hv) } } }