warren/lib/warren/warren.go

71 lines
1.4 KiB
Go

package warren
import (
"fmt"
"log"
"net"
"os"
"os/exec"
"path/filepath"
"strings"
)
var cmdSockType string = "unix"
var cmdSockAddr string = "/var/run/warrend/warrend.sock"
var warrendPidFile string = "/var/run/warrend/warrend.pid"
func CmdSockType() string {
return cmdSockType
}
func CmdSockAddr() string {
return cmdSockAddr
}
func WarrendPidFile() string {
return warrendPidFile
}
func GitHash() string {
hash, err := exec.Command("git", "rev-parse", "HEAD").Output()
if err != nil {
log.Fatal(err)
}
return strings.TrimSpace(string(hash))
}
func GitBranch() string {
gitbranch, err := exec.Command("git", "rev-parse", "--abbrev-ref", "HEAD").Output()
if err != nil {
log.Fatal(err)
}
return strings.TrimSpace(string(gitbranch))
}
func AppName() string {
paths, _ := filepath.Abs(filepath.Dir(os.Args[0]))
paths, name := filepath.Split(paths)
return name
}
func WriteStringz(c net.Conn, str string) (err error) {
_, err = c.Write([]byte(str + "\000"))
return
}
func ReadStringz(c net.Conn) (string, error) {
data := ""
buf := make([]byte, 1024) // Max size of buff based on?
for len(data) == 0 || byte(data[len(data)-1]) != 0 {
nr, err := c.Read(buf)
if err != nil {
fmt.Println("readStringz read error:", err)
return "", fmt.Errorf("readStringz error:", err)
}
data += string(buf[0:nr])
}
//return minux \000
return data[0 : len(data)-1], nil
}