package main import ( "log" "net/http" "os" "github.com/arnef/ebooks/internal/library" "github.com/arnef/ebooks/internal/users" "github.com/arnef/ebooks/internal/web" ) func main() { booksDir := getenv("BOOKS_DIR", "books") addr := getenv("ADDR", ":8080") usersDB := getenv("USERS_DB", "users.db") store, err := users.Open(usersDB) if err != nil { log.Fatalf("users db: %v", err) } defer store.Close() lib := library.New(booksDir) h := web.NewHandler(lib, store) mux := http.NewServeMux() h.RegisterRoutes(mux) log.Printf("ebooks server listening on %s (books dir: %s)", addr, booksDir) if err := http.ListenAndServe(addr, mux); err != nil { log.Fatal(err) } } func getenv(key, fallback string) string { if v := os.Getenv(key); v != "" { return v } return fallback }