Begin implementing interactive mode

This commit is contained in:
Jan Philipp Timme 2018-12-29 23:44:40 +01:00
parent 24afa08970
commit 5474966220

42
main.go
View File

@ -5,6 +5,7 @@ import (
"fmt" "fmt"
"os" "os"
"os/exec" "os/exec"
"strconv"
) )
import ( import (
@ -13,26 +14,41 @@ import (
var settings = make(map[string]string) var settings = make(map[string]string)
func argParse() { func main() {
inputModePtr := flag.String("inputMode", "cmd", "Where to read mailq output from. Available options: \"stdin\", \"cmd\"") parseArguments()
mailqCommandPtr := flag.String("mailqCommand", "mailq", "Command to use for getting mailq output") if settings["interactive"] == "false" {
mailqCommandArgsPtr := flag.String("mailqCommandArgs", "", "Optional arguments to pass to mailqCommand") showQueue()
flag.Parse() }
settings["inputMode"] = *inputModePtr if settings["interactive"] == "true" {
settings["mailqCommand"] = *mailqCommandPtr interactiveShell()
settings["mailqCommandArgs"] = *mailqCommandArgsPtr }
} }
func main() { func parseArguments() {
argParse() inputPtr := flag.String("input", "cmd", "Where to read mailq output from. Available options: \"stdin\", \"cmd\"")
mailqCommandPtr := flag.String("mailqCommand", "mailq", "Command to use for getting mailq output")
mailqCommandArgsPtr := flag.String("mailqCommandArgs", "", "Optional arguments to pass to mailqCommand")
interactivePtr := flag.Bool("interactive", false, "Set to true for shell mode")
flag.Parse()
settings["input"] = *inputPtr
settings["mailqCommand"] = *mailqCommandPtr
settings["mailqCommandArgs"] = *mailqCommandArgsPtr
settings["interactive"] = strconv.FormatBool(*interactivePtr)
}
func interactiveShell() {
}
func showQueue() {
var entries []parser.QEntry var entries []parser.QEntry
var err error var err error
if settings["inputMode"] == "stdin" { if settings["input"] == "stdin" {
entries, err = readFromStdin() entries, err = readFromStdin()
} else if settings["inputMode"] == "cmd" { } else if settings["input"] == "cmd" {
entries, err = readFromCmd(exec.Command(settings["mailqCommand"])) entries, err = readFromCmd(exec.Command(settings["mailqCommand"]))
} else { } else {
fmt.Printf("Unsupported inputMode!") fmt.Printf("Unsupported input!")
flag.PrintDefaults() flag.PrintDefaults()
os.Exit(1) os.Exit(1)
} }