package main import ( "database/sql" "log" "os" _ "github.com/mattn/go-sqlite3" ) func bootstrapDatabase() *sql.DB { fi, err := os.Stat("./db.sqlite") var db *sql.DB if err != nil { if os.IsNotExist(err) { db, err := sql.Open("sqlite3", "./db.sqlite") if err != nil { log.Fatal(err) return nil } file, err := os.ReadFile("./base.sql") if err != nil { log.Fatal("Unable to open base.sql", err) } contents := string(file) _, err = db.Exec(contents) if err != nil { log.Fatal("Unable to create base db", err) } return db } else { log.Fatal(err) return nil } } if !fi.Mode().IsRegular() { log.Fatal("File is not regular file") return nil } db, err = sql.Open("sqlite3", "./db.sqlite") if err != nil { log.Fatal(err) return nil } return db }