aboutsummaryrefslogtreecommitdiffhomepage
path: root/backend/main.go
blob: 1d09685fb7cec3974d77f14bbe38f94450b56d16 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package main

import (
	"database/sql"
	"embed"
	"flag"
	"log"

	_ "github.com/mattn/go-sqlite3"

	"undef.ninja/x/feedaka/cmd"
	"undef.ninja/x/feedaka/config"
)

//go:generate go tool sqlc generate
//go:generate go tool gqlgen generate

var (
	//go:embed public/*
	publicFS embed.FS
)

func main() {
	cfg, err := config.LoadConfig()
	if err != nil {
		log.Fatal(err)
	}

	// Parse command line flags
	var migrate = flag.Bool("migrate", false, "Run database migrations")
	var createUser = flag.Bool("create-user", false, "Create a new user")
	flag.Parse()
	database, err := sql.Open("sqlite3", "data/feedaka.db")
	if err != nil {
		log.Fatal(err)
	}
	defer database.Close()

	if *migrate {
		cmd.RunMigrate(database)
	} else if *createUser {
		cmd.RunCreateUser(database)
	} else {
		cmd.RunServe(database, cfg, publicFS)
	}
}