create start records

This commit is contained in:
thomashamburg 2025-10-01 07:19:34 +02:00
parent 8a5c015e58
commit 30896fb50e
5 changed files with 36 additions and 9 deletions

View File

@ -3,10 +3,11 @@ package main
import ( import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"ld/server"
"strings" "strings"
) )
func readCrew() (string, error) { func readCrew(server *server.Server) (string, error) {
content, err := embedded.ReadFile("embed/crew.json") content, err := embedded.ReadFile("embed/crew.json")
if err != nil { if err != nil {
@ -23,13 +24,24 @@ func readCrew() (string, error) {
return "", err return "", err
} }
const insertStmt = "INSERT INTO crew_member ( rank, name) VALUES (?, ?) ;"
insstmt, err := server.StateDB.DB().Prepare(insertStmt)
if err != nil {
return "", err
}
defer insstmt.Close()
// Print the results // Print the results
for i, text := range crewNames { for i, text := range crewNames {
rank, name := splitRank(text) rank, name := splitRank(text)
if rank == "" { if rank == "" {
rank = "ERROR" rank = "ERROR"
} }
fmt.Printf("%d: rank: %s name: %s\n", i+1, rank , name) fmt.Printf("%d: rank: %s name: %s\n", i+1, rank, name)
_, err = insstmt.Exec(rank, name)
if err != nil {
return "", err
}
} }
// fmt.Println(string(content)) // fmt.Println(string(content))
return "", nil return "", nil
@ -59,21 +71,32 @@ type Message struct {
Message string `json:"message"` Message string `json:"message"`
} }
func readMessages() ([]Message, error) { func readMessages(server *server.Server) error {
content, err := embedded.ReadFile("embed/messages.json") content, err := embedded.ReadFile("embed/messages.json")
if err != nil { if err != nil {
return nil, err return err
} }
var messages []Message var messages []Message
if err := json.Unmarshal(content, &messages); err != nil { if err := json.Unmarshal(content, &messages); err != nil {
return nil, err return err
} }
const insertStmt = "INSERT INTO ship_messages ( timestamp, subsystem, severity, color, message) VALUES (?,?,?,?,?) ;"
insstmt, err := server.StateDB.DB().Prepare(insertStmt)
if err != nil {
return err
}
defer insstmt.Close()
// For demonstration, print the parsed messages // For demonstration, print the parsed messages
for _, m := range messages { for _, m := range messages {
fmt.Printf("[%s] %s (%s) - %s\n", m.Timestamp, m.Subsystem, m.Severity, m.Message) fmt.Printf("[%s] %s (%s) - %s\n", m.Timestamp, m.Subsystem, m.Severity, m.Message)
_, err = insstmt.Exec(m.Timestamp, m.Subsystem, m.Severity, m.Color, m.Message)
if err != nil {
fmt.Println(err)
return err
}
} }
return messages, nil return nil
} }

View File

@ -40,9 +40,9 @@ func main() {
os.Exit(exitCodeErr) os.Exit(exitCodeErr)
} }
readCrew() // readCrew()
readMessages() // readMessages()
run() run()
@ -65,7 +65,6 @@ func run() error {
log.Fatalf("Failed to create internal StateDB: %v", err) log.Fatalf("Failed to create internal StateDB: %v", err)
} }
return nil
// setting up the server // setting up the server
server, err := server.New( server, err := server.New(
logFileName, logFileName,
@ -85,6 +84,11 @@ func run() error {
log.Fatalf("server not started - error: %v", err) log.Fatalf("server not started - error: %v", err)
} }
readCrew(server)
readMessages(server)
return nil
// listen for os shutdown events, report them into log file and exit application // listen for os shutdown events, report them into log file and exit application
chanOS := make(chan os.Signal, 2) chanOS := make(chan os.Signal, 2)
signal.Notify(chanOS, os.Interrupt, syscall.SIGTERM) signal.Notify(chanOS, os.Interrupt, syscall.SIGTERM)

Binary file not shown.

Binary file not shown.

Binary file not shown.