From e483f89c16abbdd1d5d6276c272e4a680f48ab93 Mon Sep 17 00:00:00 2001 From: Derek Parker Date: Tue, 20 May 2014 16:29:01 -0500 Subject: [PATCH] Add initial main func --- main.go | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 main.go diff --git a/main.go b/main.go new file mode 100644 index 00000000..b426cbb2 --- /dev/null +++ b/main.go @@ -0,0 +1,56 @@ +package main + +import ( + "bufio" + "fmt" + "os" + "strings" + + "github.com/Dparker1990/dbg/command" +) + +type term struct { + stdin *bufio.Reader +} + +func main() { + var ( + t = newTerm() + cmds = command.DebugCommands() + ) + + for { + cmdstr, err := t.promptForInput() + if err != nil { + fmt.Fprint(os.Stderr, "Prompt for input failed.") + os.Exit(1) + } + + cmd := cmds.Find(cmdstr) + err = cmd() + if err != nil { + fmt.Fprintf(os.Stderr, "Command failed: %s\n", err) + } + } +} + +func newTerm() *term { + return &term{ + stdin: bufio.NewReader(os.Stdin), + } +} + +func (t *term) promptForInput() (string, error) { + fmt.Print("dbg> ") + + line, err := t.stdin.ReadString('\n') + if err != nil { + return "", err + } + + return stripNewLine(line), nil +} + +func stripNewLine(s string) string { + return strings.TrimSuffix(s, "\n") +} -- GitLab