package main import ( "flag" "os" "code.chrissexton.org/cws/cabinet/entry" "code.chrissexton.org/cws/cabinet/db" "code.chrissexton.org/cws/cabinet/web" packr "github.com/gobuffalo/packr/v2" _ "github.com/mattn/go-sqlite3" "github.com/rs/zerolog" "github.com/rs/zerolog/log" ) var ( dbPath = flag.String("db", "cabinet.db", "path to db") httpAddr = flag.String("httpAddr", "0.0.0.0:8080", "http address") salt = flag.String("salt", "c4b1n3t", "salt for IDs") minHashLen = flag.Int("minHashLen", 4, "minimum ID hash size") develop = flag.Bool("develop", false, "turn on develop mode") adminSecret = flag.String("adminSecret", "helpme123", "secret for user creation") ) func main() { flag.Parse() log.Logger = log.Logger.Output(zerolog.ConsoleWriter{Out: os.Stderr}) zerolog.SetGlobalLevel(zerolog.DebugLevel) box := packr.New("dist", "frontend/dist") log.Debug().Strs("dirlist", box.List()).Msg("packr made") db, err := db.New(*dbPath) if err != nil { log.Fatal(). Err(err). Msg("could not connect to database") } tx := db.MustBegin() if err := entry.PrepareTable(tx); err != nil { log.Fatal().Err(err).Msg("could not create database") } tx.Commit() s := web.New(*httpAddr, db, box) s.Serve() }