mirror/merlin/cmd/arthur/arthur.go

65 lines
938 B
Go
Raw Normal View History

2022-02-02 19:16:41 -05:00
package main
import (
"flag"
"fmt"
"io/ioutil"
"log"
"net"
"os"
)
2022-07-02 19:35:26 -04:00
// var DEFAULT_SOCKET_PATH = "/home/mirror/merlin/merlin.sock"
var DEFAULT_SOCKET_PATH = "/mirror/merlin/run/merlin-go.sock"
2022-02-02 19:16:41 -05:00
2022-02-04 00:28:07 -05:00
var HELP_MESSAGE = `USAGE:
arthur [-h|--help] [--sock <socket_path>] COMMAND
COMMANDS:
sync:[repo]
status
FLAGS:
`
2022-02-02 19:16:41 -05:00
func main() {
log.SetPrefix("[ERROR]: ")
log.SetFlags(0)
flag.Usage = func() {
w := flag.CommandLine.Output()
2022-02-04 00:28:07 -05:00
fmt.Fprintf(w, HELP_MESSAGE)
2022-02-02 19:16:41 -05:00
flag.PrintDefaults()
}
sockPath := flag.String("sock", DEFAULT_SOCKET_PATH, "alternate socket file")
flag.Parse()
if flag.NArg() < 1 {
os.Exit(1)
}
conn, err := net.Dial("unix", *sockPath)
if err != nil {
log.Fatal(err)
}
2022-02-04 00:28:07 -05:00
_, err = conn.Write([]byte(os.Args[1]))
2022-02-02 19:16:41 -05:00
if err != nil {
log.Fatal(err)
}
conn.(*net.UnixConn).CloseWrite()
response, err := ioutil.ReadAll(conn)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(response))
}