66 lines
1.3 KiB
Go
66 lines
1.3 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 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
|
|
}
|