New startup and shutdown directives

This commit is contained in:
Matthew Holt
2015-03-26 09:52:03 -06:00
parent b5dc1dde8b
commit 2fbfafc408
5 changed files with 144 additions and 63 deletions

27
middleware/commands.go Normal file
View File

@ -0,0 +1,27 @@
package middleware
import (
"errors"
"github.com/flynn/go-shlex"
)
// SplitCommandAndArgs takes a command string and parses it
// shell-style into the command and its separate arguments.
func SplitCommandAndArgs(command string) (cmd string, args []string, err error) {
parts, err := shlex.Split(command)
if err != nil {
err = errors.New("Error parsing command: " + err.Error())
return
} else if len(parts) == 0 {
err = errors.New("No command contained in '" + command + "'")
return
}
cmd = parts[0]
if len(parts) > 1 {
args = parts[1:]
}
return
}