From f1e64b122739459c88cd5dd5d37b52cad330d473 Mon Sep 17 00:00:00 2001 From: Dan Ballard Date: Wed, 18 Feb 2015 21:58:29 -0800 Subject: [PATCH] change sock comm seperator and pass path to warrend --- cmd/warren/cmd_run.go | 7 ++++--- cmd/warrend/cmd_reg.go | 2 +- cmd/warrend/cmd_status.go | 2 +- cmd/warrend/main.go | 19 ++++++++++++------- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/cmd/warren/cmd_run.go b/cmd/warren/cmd_run.go index 5890ab1..3e702db 100644 --- a/cmd/warren/cmd_run.go +++ b/cmd/warren/cmd_run.go @@ -5,8 +5,8 @@ import ( "github.com/dballard/warren/lib/warren" "log" "net" + "os" "strings" - // "os" // "os/exec" // "time" ) @@ -36,8 +36,9 @@ func runRun(cmd *warren.Command, args ...string) { if err != nil { log.Fatal("Error connecting to warrend:", err) } - - warren.WriteStringz(s, strings.Join(args, " ")) + dir, _ := os.Getwd() + // pwd|arg1 arg2 arg3 .... + warren.WriteStringz(s, dir+"|"+strings.Join(args, "|")) resp, err := warren.ReadStringz(s) diff --git a/cmd/warrend/cmd_reg.go b/cmd/warrend/cmd_reg.go index 196aeeb..0c1e62a 100644 --- a/cmd/warrend/cmd_reg.go +++ b/cmd/warrend/cmd_reg.go @@ -22,7 +22,7 @@ var regCmd = &SockCommand{ } // reg path [nickname] -func regRun(cmd *SockCommand, c net.Conn, args ...string) { +func regRun(cmd *SockCommand, c net.Conn, path string, args ...string) { if (len(args) > 0 && args[0] == "help") || len(args) < 1 { warren.WriteStringz(c, cmd.Help) return diff --git a/cmd/warrend/cmd_status.go b/cmd/warrend/cmd_status.go index 40099ca..de5e754 100644 --- a/cmd/warrend/cmd_status.go +++ b/cmd/warrend/cmd_status.go @@ -20,7 +20,7 @@ var statusCmd = &SockCommand{ Run: statusRun, } -func statusRun(cmd *SockCommand, c net.Conn, args ...string) { +func statusRun(cmd *SockCommand, c net.Conn, path string, args ...string) { if len(args) > 0 && args[0] == "help" { warren.WriteStringz(c, cmd.Help) return diff --git a/cmd/warrend/main.go b/cmd/warrend/main.go index 3572212..4e59327 100644 --- a/cmd/warrend/main.go +++ b/cmd/warrend/main.go @@ -16,7 +16,7 @@ var cmdSock net.Listener type SockCommand struct { warren.Command - Run func(cmd *SockCommand, c net.Conn, args ...string) + Run func(cmd *SockCommand, c net.Conn, path string, args ...string) } func (cmd *SockCommand) GetName() string { @@ -27,12 +27,12 @@ func (cmd *SockCommand) GetSummary() string { return cmd.Summary } -func (cmd *SockCommand) Exec(c net.Conn, args []string) { +func (cmd *SockCommand) Exec(c net.Conn, path string, args []string) { cmd.Flag.Usage = func() { // helpFunc(c, c.Name) } cmd.Flag.Parse(args) - cmd.Run(cmd, c, cmd.Flag.Args()...) + cmd.Run(cmd, c, path, cmd.Flag.Args()...) } func sockCmdHandle(c net.Conn) { @@ -47,18 +47,23 @@ func sockCmdHandle(c net.Conn) { fmt.Println("cmdHandle got command:", string(data)) // BAD: TODO: handle quotes " - var args = strings.Split(data, " ") + // path|arg1|arg2|... + args := strings.Split(data, "|") + if len(args) < 2 { + warren.WriteStringz(c, "Format error") + return + } // parse args - var icmd = warren.GetCommand(args[0]) + var icmd = warren.GetCommand(args[1]) // get and run cmd if icmd == nil { - warren.WriteStringz(c, "Unknown command "+args[0]) + warren.WriteStringz(c, "Unknown command "+args[1]) // usage ? return } - icmd.(*SockCommand).Exec(c, args[1:]) + icmd.(*SockCommand).Exec(c, args[0], args[2:]) } // determine if warrend is already running