package main import ( "encoding/json" "fmt" "strings" ) func readCrew() (string, error) { content, err := embedded.ReadFile("embed/crew.json") if err != nil { return "", err } // Create a slice to hold the parsed names var crewNames []string // Parse the JSON err = json.Unmarshal(content, &crewNames) if err != nil { fmt.Println("Error parsing JSON:", err) return "", err } // Print the results for i, text := range crewNames { rank, name := splitRank(text) if rank == "" { rank = "ERROR" } fmt.Printf("%d: rank: %s name: %s\n", i+1, rank , name) } // fmt.Println(string(content)) return "", nil } // splitRank separates the rank (all tokens except the last two) from the crewman's name (last two tokens) func splitRank(fullName string) (rank, name string) { tokens := strings.Fields(fullName) if len(tokens) < 2 { return fullName, "" // fallback if malformed } nameTokens := tokens[len(tokens)-2:] // last 2 tokens as name rankTokens := tokens[:len(tokens)-2] // everything else as rank name = strings.Join(nameTokens, " ") rank = strings.Join(rankTokens, " ") return rank, name } type Message struct { Timestamp string `json:"timestamp"` Subsystem string `json:"subsystem"` Severity string `json:"severity"` Color string `json:"color"` Message string `json:"message"` } func readMessages() ([]Message, error) { content, err := embedded.ReadFile("embed/messages.json") if err != nil { return nil, err } var messages []Message if err := json.Unmarshal(content, &messages); err != nil { return nil, err } // For demonstration, print the parsed messages for _, m := range messages { fmt.Printf("[%s] %s (%s) - %s\n", m.Timestamp, m.Subsystem, m.Severity, m.Message) } return messages, nil }