package cli import ( "fmt" "os" ) const PROJECT_NAME string = "go-rest-cctweaked" type knownArguments int const ( enumStart knownArguments = iota HelpArg SendArg RecieveArg WrongArg ) var argumentsDescription = map[knownArguments]string{ HelpArg: "help - shows help message.", SendArg: "send - sends cctweaked message to specified restfull endpoint.", RecieveArg: "recieve - fetches current message on server", } func gracefullExit(msg string) { fmt.Println(msg) os.Exit(0) } func BasicInterface() { args := os.Args[1:] if len(args) == 0 { gracefullExit("Can't find argument. Please refer to --help") } knownArg := getArgType(args[0]) switch knownArg { case HelpArg: processHelp() case SendArg: processSend(args) case RecieveArg: processRecieve(args) case WrongArg: gracefullExit("Can't find argument. Please refer to --help") } } func getArgType(argument string) knownArguments { switch argument { case "help": return HelpArg case "--help": return HelpArg case "-h": return HelpArg case "send": return SendArg case "recieve": return RecieveArg default: return WrongArg } }