71 lines
1.1 KiB
Go
71 lines
1.1 KiB
Go
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 <url> <content> <type> - sends cctweaked message to specified restfull endpoint.",
|
|
RecieveArg: "recieve <url> - 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
|
|
}
|
|
}
|