forked from WEB-IMB-WS2526/lab-development-imb
74 lines
1.4 KiB
Go
74 lines
1.4 KiB
Go
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")
|
|
}
|
|
|
|
}
|