lure/fix.go
Arsen Musayelyan 8366a2ce86
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Switch to SQLite DB
2022-12-24 12:56:02 -08:00

53 lines
1.1 KiB
Go

package main
import (
"os"
"github.com/jmoiron/sqlx"
"github.com/urfave/cli/v2"
"go.arsenm.dev/logger/log"
"go.arsenm.dev/lure/internal/config"
"go.arsenm.dev/lure/internal/db"
"go.arsenm.dev/lure/internal/repos"
)
func fixCmd(c *cli.Context) error {
gdb.Close()
log.Info("Removing cache directory").Send()
err := os.RemoveAll(config.CacheDir)
if err != nil {
log.Fatal("Unable to remove cache directory").Err(err).Send()
}
log.Info("Rebuilding cache").Send()
err = os.MkdirAll(config.CacheDir, 0o755)
if err != nil {
log.Fatal("Unable to create new cache directory").Err(err).Send()
}
gdb, err = sqlx.Open("sqlite", config.DBPath)
if err != nil {
log.Fatal("Unable to create new database").Err(err).Send()
}
// Make sure the DB is rebuilt when repos are pulled
config.DBPresent = false
err = db.Init(gdb)
if err != nil {
log.Fatal("Error initializing database").Err(err).Send()
}
err = repos.Pull(c.Context, gdb, cfg.Repos)
if err != nil {
log.Fatal("Error pulling repos").Err(err).Send()
}
log.Info("Done").Send()
return nil
}