Commit Diff


commit - b25c20b4f35df866bfc43d44cdc78b9876b1b028
commit + be20893f819a5320fcf7aae0fd66f48c2e1651ed
blob - 9e4ecb8a5e91c19c8b0b6edbcf9571bd70c99122
blob + 5df1f44e95df5012ac0d24147c449c696aa34808
--- userdb.go
+++ userdb.go
@@ -38,26 +38,24 @@ func CreateUserDB(name, ticketDir string) (*UserDB, er
 	if err != nil {
 		return nil, fmt.Errorf("create user db: %w", err)
 	}
-	return db, db.initialise()
+	return db, initialiseUserDB(db.DB)
 }
 
 // OpenUserDB opens the named user database file and ticket directory.
+// If the database does not exist, it is created and its tables are 
+// initialised ready for use.
 func OpenUserDB(name, dir string) (*UserDB, error) {
 	db, err := sql.Open("sqlite3", name)
 	if err != nil {
 		return nil, err
 	}
-	stmt := `CREATE TABLE IF NOT EXISTS users (
-	username TEXT PRIMARY KEY,
-	password BLOB NOT NULL
-);`
-	if _, err := db.Exec(stmt); err != nil {
+	if err := initialiseUserDB(db); err != nil {
 		return nil, err
 	}
 	return &UserDB{db, dir}, db.Ping()
 }
 
-func (db *UserDB) initialise() error {
+func initialiseUserDB(db *sql.DB) error {
 	stmt := `CREATE TABLE IF NOT EXISTS users (
 	username TEXT PRIMARY KEY,
 	password BLOB NOT NULL