warren/lib/warren/warren.go

60 lines
1.1 KiB
Go

package warren
import (
"fmt"
"log"
"net"
"os"
"os/exec"
"path/filepath"
"strings"
)
var cmdSockType string = "unix"
var cmdSockAddr string = "/tmp/warrend.sock"
func CmdSockType() string {
return cmdSockType
}
func CmdSockAddr() string {
return cmdSockAddr
}
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 ReadStringz(c net.Conn) (string, error) {
data := ""
buf := make([]byte, 1024) // Max size of buff based on?
for len(data) > 0 && 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 data, nil
}