summaryrefslogtreecommitdiff
path: root/src/liteq.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/liteq.go')
-rw-r--r--src/liteq.go117
1 files changed, 0 insertions, 117 deletions
diff --git a/src/liteq.go b/src/liteq.go
deleted file mode 100644
index 2eeff34..0000000
--- a/src/liteq.go
+++ /dev/null
@@ -1,117 +0,0 @@
-package liteq
-
-import (
- "database/sql"
- "flag"
- "io/ioutil"
- "log/slog"
- "os"
- "sort"
-
- g "gobang"
- "golite"
-)
-
-
-
-func InitMigrations(db *sql.DB) {
- _, err := db.Exec(`
- CREATE TABLE IF NOT EXISTS migrations (
- filename TEXT PRIMARY KEY
- );
- `)
- g.FatalIf(err)
-}
-
-const MIGRATIONS_DIR = "src/sql/migrations/"
-func PendingMigrations(db *sql.DB) []string {
- files, err := ioutil.ReadDir(MIGRATIONS_DIR)
- g.FatalIf(err)
-
- set := make(map[string]bool)
- for _, file := range files {
- set[file.Name()] = true
- }
-
- rows, err := db.Query(`SELECT filename FROM migrations;`)
- g.FatalIf(err)
- defer rows.Close()
-
- for rows.Next() {
- var filename string
- err := rows.Scan(&filename)
- g.FatalIf(err)
- delete(set, filename)
- }
- g.FatalIf(rows.Err())
-
- difference := make([]string, 0)
- for filename := range set {
- difference = append(difference, filename)
- }
-
- sort.Sort(sort.StringSlice(difference))
- return difference
-}
-
-func RunMigrations(db *sql.DB) {
- InitMigrations(db)
-
- stmt, err := db.Prepare(`INSERT INTO migrations (filename) VALUES (?);`)
- g.FatalIf(err)
- defer stmt.Close()
-
- for _, filename := range PendingMigrations(db) {
- g.Info("Running migration file", "exec-migration-file",
- "filename", filename,
- )
-
- tx, err := db.Begin()
- g.FatalIf(err)
-
- sql, err := os.ReadFile(MIGRATIONS_DIR + filename)
- g.FatalIf(err)
-
- _, err = tx.Exec(string(sql))
- g.FatalIf(err)
-
- _, err = tx.Stmt(stmt).Exec(filename)
- g.FatalIf(err)
-
- err = tx.Commit()
- g.FatalIf(err)
- }
-}
-
-func initDB(databasePath string) *sql.DB {
- db, err := sql.Open("sqlite3", databasePath)
- g.FatalIf(err)
- RunMigrations(db)
- return db
-}
-
-func run(db *sql.DB) {
-}
-
-
-
-var (
- databasePath = flag.String(
- "f",
- "q.db",
- "The path to the database file",
- )
-)
-
-
-func Main() {
- g.Init(slog.Group(
- "versions",
- "gobang", g.Version,
- "golite", golite.Version,
- "this", version,
- ))
- flag.Parse()
- db := initDB(*databasePath)
- run(db)
-}