package main import ( "github.com/dballard/warren/cmd/warrend/conf" "github.com/dballard/warren/lib/warren" "net" "strings" ) var regUsage = ` warren reg DEPLOYMENT_DIR [NICKNAME] ` var regCmd = &SockCommand{ Command: warren.Command{ Name: "reg", Usage: regUsage, Summary: "Register a deployment directory for running", }, Run: regRun, } var unregUsage = ` warren unreg DEPLOYMENT_DIR warren unreg NICKNAME ` var unregCmd = &SockCommand{ Command: warren.Command{ Name: "unreg", Usage: unregUsage, Summary: "Unregister a deployment directory and stop it running", }, Run: unregRun, } // reg path [nickname] 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.Usage) return } // get either supplied nick or parse from dir d := new(conf.DeploymentMsg) d.Path = warren.AbsPath(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) if err != nil { warren.WriteStringz(c, "ERROR: "+err.Error()) return } warren.WriteStringz(c, "Registered deployment "+d.Name+" at "+d.Path) } // unreg path // unreg nick func unregRun(cmd *SockCommand, c net.Conn, path string, args ...string) { if (len(args) > 0 && args[0] == "help") || len(args) < 1 { warren.WriteStringz(c, cmd.Usage) return } err := conf.RmDeployment(args[0]) if err != nil { warren.WriteStringz(c, "ERROR: " + err.Error()) return } warren.WriteStringz(c, "Unregistered deployment " + args[0]) }