warren/cmd/warrend/cmd_reg.go

52 lines
1.1 KiB
Go
Raw Normal View History

2015-02-14 19:42:02 +00:00
package main
import (
"github.com/dballard/warren/cmd/warrend/conf"
2015-02-14 19:42:02 +00:00
"github.com/dballard/warren/lib/warren"
"net"
"strings"
)
var regUsage = `
status -
`
var regCmd = &SockCommand{
Command: warren.Command{
Name: "reg",
Usage: regUsage,
Summary: "Register a deployment directory for running",
Help: regUsage,
},
Run: regRun,
}
// reg path [nickname]
func regRun(cmd *SockCommand, c net.Conn, path string, args ...string) {
2015-02-14 19:42:02 +00:00
if (len(args) > 0 && args[0] == "help") || len(args) < 1 {
warren.WriteStringz(c, cmd.Help)
return
}
// get either supplied nick or parse from dir
d := new(conf.DeploymentMsg)
2015-02-14 19:42:02 +00:00
d.Path = args[0]
if len(args) >= 2 && strings.TrimSpace(args[1]) != "" {
d.Name = args[1]
} else {
parts := strings.Split(strings.Trim(d.Path, " /"), "/")
if parts[len(parts)-1] == "deploy" {
d.Name = parts[len(parts)-2]
} else {
d.Name = parts[len(parts)-1]
}
}
err := conf.AddDeployment(d)
2015-02-14 19:42:02 +00:00
if err != nil {
warren.WriteStringz(c, "ERROR: "+err.Error())
return
}
warren.WriteStringz(c, "Registered deployment "+d.Name+" at "+d.Path)
}