diff --git a/.gitignore b/.gitignore index 72aebf1..15a91dc 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ gin-bin lishwist.db .env +db/init_sql.go diff --git a/db/db.go b/db/db.go index db1082b..9cf456b 100644 --- a/db/db.go +++ b/db/db.go @@ -1,8 +1,9 @@ +//go:generate go run gen_init_sql.go + package db import ( "database/sql" - "os" _ "github.com/mattn/go-sqlite3" ) @@ -19,11 +20,7 @@ func Open() error { } func Init() error { - initStmt, err := os.ReadFile("./db/init.sql") - if err != nil { - return err - } - _, err = database.Exec(string(initStmt)) + _, err := database.Exec(InitQuery) if err != nil { return err } diff --git a/db/gen_init_sql.go b/db/gen_init_sql.go new file mode 100644 index 0000000..2e9d7e4 --- /dev/null +++ b/db/gen_init_sql.go @@ -0,0 +1,30 @@ +//go:build ignore + +package main + +import ( + "log" + "os" + "text/template" +) + +var initTemplate = template.Must(template.New("").Parse("// Code generated DO NOT EDIT.\n" + + "package db\n" + + "\n" + + "const InitQuery = `{{.}}`\n", +)) + +func main() { + initStmt, err := os.ReadFile("./init.sql") + if err != nil { + log.Fatal(err) + } + + f, err := os.Create("./init_sql.go") + if err != nil { + log.Fatal(err) + } + defer f.Close() + + initTemplate.Execute(f, string(initStmt)) +}