warren/cmd/warren/cmd_warrend.go

73 lines
1.5 KiB
Go

package main
import (
"fmt"
"github.com/dballard/warren/lib/warren"
"log"
"net"
"os"
"strings"
"bufio"
// "os/exec"
// "time"
)
var regCmd = &warren.Command{
Name: "reg",
Summary: "Register a deployment directory for running",
Run: warrendRun,
}
var unregUsage = `
warren unreg DEPLOYMENT_DIR
warren unreg NICKNAME
`
var unregCmd = &warren.Command{
Name: "unreg",
Summary: "Unregister a deployment directory and stop it running",
Run: warrendRun,
}
var listUsage = `
warren list - Get the status from the warrend server
`
var listCmd = &warren.Command{
Name: "list",
Usage: listUsage,
Summary: "Get a list of deployments from the warrend server",
Run: warrendRun,
}
var poolUsage = `
warren pool - Get/set the pool range for a deployment
`
var poolCmd = &warren.Command{
Name: "pool",
Usage: poolUsage,
Summary: "warren pool - Get/set the pool range for a deployment",
Run: warrendRun,
}
func warrendRun(cmd *warren.Command, args ...string) {
sock, err := net.Dial(warren.CmdSockType, warren.CmdSockAddr)
if sock != nil {
defer sock.Close()
}
if err != nil {
log.Fatal("Error connecting to warrend:", err)
}
dir, _ := os.Getwd()
// pwd|arg1 arg2 arg3 ....
writer := bufio.NewWriter(sock)
writer.WriteString(dir+"/|"+cmd.Name+"|"+strings.Join(args, "|") +"\n")
writer.Flush()
reader := bufio.NewReader(sock)
if resp, err := reader.ReadString(0); err == nil {
fmt.Println(resp)
} else {
fmt.Println("not ok")
}
}