package main // fmt für ausgaben, os für Kommandozeilenargumente, strconv um strings in ints umzuwandeln import ( "fmt" "os" "strconv" ) // prüfen, ob mind. 1 Kommando übergeben wurde func main() { if len(os.Args) < 2 { fmt.Println("Bitte einen Befehl eingeben") return } filename := "books.json" library, err := Load(filename) if err != nil { fmt.Println("Fehler beim Laden der JSON-Datai:", err.Error()) return } switch os.Args[1] { case "add": // Wenn Argumente kleiner 4, Hilfe ausgeben if len(os.Args) < 4 { fmt.Println("Benutze: add / Titel / Autor ") return } // sonst titel = Argument 2 und autor = Argument 3 titel := os.Args[2] autor := os.Args[3] library.Add(titel, autor) if err := library.Save(filename); err != nil { fmt.Println("Fehler beim Speichern:", err.Error()) return } fmt.Println("Buch hinzugefügt.") case "list": library.List() case "read": if len(os.Args) < 3 { fmt.Println("Benutze: read / ID") return } id, convErr := strconv.Atoi(os.Args[2]) if convErr != nil { fmt.Println("Die ID muss eine Zahl sein.") return } library.Read(id) if err := library.Save(filename); err != nil { fmt.Println("Fehler beim Speichern:", err.Error()) return } fmt.Println("Buch als gelesen markiert.") default: fmt.Println("Kein bekanntes Kommando(add/list/red") } }