use logger instead of stderr since in daemon mode we cannot access std outputs

This commit is contained in:
mykola2312 2025-01-24 23:32:04 +02:00
parent ddb0c24977
commit 451b73b0f2

30
main.go
View file

@ -115,6 +115,8 @@ func bootstrapNode() {
}
}
var log = logging.MustGetLogger("main")
func nodeMain() {
xmlBytes, err := os.ReadFile(configPath)
if err != nil {
@ -124,7 +126,7 @@ func nodeMain() {
var config NodeConfig
if err := xml.Unmarshal(xmlBytes, &config); err != nil {
fmt.Fprintf(os.Stderr, "failed to parse xml: %v\n", err)
log.Criticalf("failed to parse xml: %v\n", err)
os.Exit(1)
}
@ -133,30 +135,30 @@ func nodeMain() {
// check presense of keystore and id in config
if config.KeyStore == "" {
fmt.Fprintln(os.Stderr, "no keystore path specified!")
log.Critical("no keystore path specified!")
os.Exit(1)
}
if config.ID == "" {
fmt.Fprintln(os.Stderr, "no ID in config! You need to --bootstrap")
log.Critical("no ID in config! You need to --bootstrap")
os.Exit(1)
}
nodeId, err := proto.ParseLuxID(config.ID)
if err != nil {
fmt.Fprintf(os.Stderr, "failed to parse node id: %v\n", err)
log.Criticalf("failed to parse node id: %v\n", err)
os.Exit(1)
}
// load keystore
ks := crypto.NewLuxKeyStore(config.KeyStore)
if err := ks.Load(); err != nil {
fmt.Fprintf(os.Stderr, "failed to laod keystore: %v\n", err)
log.Criticalf("failed to laod keystore: %v\n", err)
os.Exit(1)
}
nodeKey, ok := ks.Get(nodeId)
if !ok {
fmt.Fprintln(os.Stderr, "node key is not present in key store!")
log.Critical("node key is not present in key store!")
os.Exit(1)
}
@ -166,13 +168,13 @@ func nodeMain() {
// add interior exterior channels
for _, interior := range config.Interior {
if err := node.AddInterior(interior); err != nil {
fmt.Fprintf(os.Stderr, "failed to add interior %s: %v\n", interior, err)
log.Criticalf("failed to add interior %s: %v\n", interior, err)
os.Exit(1)
}
}
for _, exterior := range config.Exterior {
if err := node.AddExterior(exterior); err != nil {
fmt.Fprintf(os.Stderr, "failed to add exterior %s: %v\n", exterior, err)
log.Criticalf("failed to add exterior %s: %v\n", exterior, err)
os.Exit(1)
}
}
@ -181,12 +183,12 @@ func nodeMain() {
for _, neighbor := range config.Neighbors {
neighId, err := proto.ParseLuxID(neighbor.ID)
if err != nil {
fmt.Fprintf(os.Stderr, "failed to parse neigh id %s: %v\n", neighbor.ID, err)
log.Criticalf("failed to parse neigh id %s: %v\n", neighbor.ID, err)
os.Exit(1)
}
if err := node.AddNeighbor(neighId, neighbor.Address); err != nil {
fmt.Fprintf(os.Stderr, "failed to add neighbor %s: %v\n", neighbor.ID, err)
log.Criticalf("failed to add neighbor %s: %v\n", neighbor.ID, err)
os.Exit(1)
}
}
@ -201,18 +203,18 @@ func nodeMain() {
path := rpcPath[7:]
if err := sv.AddEndpoint("unix", path, rpc.LuxRpcTypeRoot); err != nil {
fmt.Fprintf(os.Stderr, "failed to add root rpc %s: %v\n", path, err)
log.Criticalf("failed to add root rpc %s: %v\n", path, err)
os.Exit(1)
}
} else if strings.HasPrefix(rpcPath, "tcp://") {
path := rpcPath[6:]
if err := sv.AddEndpoint("tcp", path, rpc.LuxRpcTypeQuery); err != nil {
fmt.Fprintf(os.Stderr, "failed to add query rpc %s: %v\n", path, err)
log.Criticalf("failed to add query rpc %s: %v\n", path, err)
os.Exit(1)
}
} else {
fmt.Fprintf(os.Stderr, "unknown rpc type %s. It must be either unix:// or tcp://\n", rpcPath)
log.Criticalf("unknown rpc type %s. It must be either unix:// or tcp://\n", rpcPath)
os.Exit(1)
}
}
@ -231,7 +233,7 @@ func nodeMain() {
signaling:
for {
sig := <-sigs
fmt.Println(sig)
log.Debug(sig)
switch sig {
case syscall.SIGINT:
break signaling