aman/cmd/lelctl/main.go

45 lines
768 B
Go

package main
import (
"flag"
"fmt"
"net"
"os"
"path/filepath"
"strings"
)
func main() {
flag.Parse()
if flag.NArg() == 0 {
fmt.Fprintln(os.Stderr, "usage: lelctl <status|stop|reload>")
os.Exit(1)
}
cmd := strings.TrimSpace(flag.Arg(0))
if cmd == "" {
fmt.Fprintln(os.Stderr, "invalid command")
os.Exit(1)
}
runtimeDir := os.Getenv("XDG_RUNTIME_DIR")
if runtimeDir == "" {
runtimeDir = "/tmp"
}
sockPath := filepath.Join(runtimeDir, "lel", "ctl.sock")
conn, err := net.Dial("unix", sockPath)
if err != nil {
fmt.Fprintf(os.Stderr, "connect failed: %v\n", err)
os.Exit(1)
}
defer conn.Close()
_, _ = fmt.Fprintf(conn, "%s\n", cmd)
buf := make([]byte, 4096)
n, _ := conn.Read(buf)
if n > 0 {
fmt.Print(string(buf[:n]))
}
}