commit 5e622b9bb50c661a19f5b6b32666e6f880776fca from: Oliver Lowe date: Thu Apr 14 02:34:17 2022 UTC mailmux: Actually try to create the database if it doesn't exist commit - 2243a1ae65fdace004d2e95cf1e87711a13347be commit + 5e622b9bb50c661a19f5b6b32666e6f880776fca blob - 4e32bae9d0de09c2bf5279927a10eaab881be5b7 blob + bb0b51d2b75a7b8148e02d22ae69b358e98d31db --- userdb.go +++ userdb.go @@ -4,6 +4,7 @@ import ( "database/sql" "errors" "fmt" + "io/fs" "net/mail" "os" "path" @@ -40,6 +41,12 @@ func CreateUserDB(name, ticketDir string) (*UserDB, er // OpenUserDB opens the named user database file and ticket directory. func OpenUserDB(name, dir string) (*UserDB, error) { + // sql.Open creates a blank file if it finds it doesn't exist. + // Return early if the file doesn't exist so we can handle it ourselves. + _, err := os.Stat(name) + if errors.Is(err, fs.ErrNotExist) { + return nil, err + } db, err := sql.Open("sqlite3", name) if err != nil { return nil, err