hmac problems.
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"flag"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"os/signal"
|
||||
@@ -8,16 +11,63 @@ import (
|
||||
|
||||
"kattila-agent/api"
|
||||
"kattila-agent/config"
|
||||
"kattila-agent/network"
|
||||
"kattila-agent/reporter"
|
||||
"kattila-agent/security"
|
||||
)
|
||||
|
||||
func main() {
|
||||
dumpFlag := flag.String("dump", "", "Run data collection once and write the JSON report to the specified file, then exit")
|
||||
discoverFlag := flag.Bool("discover", false, "Run relay peer discovery to find active Kattila peers and output the results, then exit")
|
||||
sysinfoFlag := flag.Bool("sysinfo", false, "Gather system data and print as formatted JSON to stdout, then exit")
|
||||
flag.Parse()
|
||||
|
||||
log.Println("Kattila Agent starting...")
|
||||
|
||||
config.LoadConfig()
|
||||
|
||||
if *sysinfoFlag {
|
||||
data, err := network.GatherSystemData()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to gather system data: %v", err)
|
||||
}
|
||||
encoded, err := json.MarshalIndent(data, "", " ")
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to encode system data: %v", err)
|
||||
}
|
||||
fmt.Println(string(encoded))
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
if *discoverFlag {
|
||||
log.Println("Starting peer discovery...")
|
||||
peers, err := reporter.DiscoverPeers()
|
||||
if err != nil {
|
||||
log.Fatalf("Peer discovery failed: %v", err)
|
||||
}
|
||||
if len(peers) == 0 {
|
||||
log.Println("No active peers found.")
|
||||
} else {
|
||||
log.Printf("Found %d active peer(s):", len(peers))
|
||||
for _, p := range peers {
|
||||
log.Println(" -", p)
|
||||
}
|
||||
}
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
security.StartKeyPoller()
|
||||
|
||||
if *dumpFlag != "" {
|
||||
log.Printf("Dumping report to %s...", *dumpFlag)
|
||||
err := reporter.ExportReportToFile(*dumpFlag)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to dump report: %v", err)
|
||||
}
|
||||
log.Println("Report dumped successfully.")
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
api.StartServer(reporter.HandleRelay)
|
||||
reporter.StartLoop()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user