From 4ab05592633ae75de5a39d16495f57eb6ea263a2 Mon Sep 17 00:00:00 2001 From: jakka Date: Sat, 12 Apr 2025 19:30:05 +0300 Subject: reimplemented database in badger so it actually works --- cmd/cmd.go | 25 ++++++++++--------------- cmd/init.go | 4 ++-- cmd/main.go | 2 +- 3 files changed, 13 insertions(+), 18 deletions(-) (limited to 'cmd') diff --git a/cmd/cmd.go b/cmd/cmd.go index 82a9cd5..974770d 100644 --- a/cmd/cmd.go +++ b/cmd/cmd.go @@ -5,33 +5,24 @@ import ( "os" "os/signal" - "github.com/justjakka/reencoder/files" - "github.com/tidwall/buntdb" + badger "github.com/dgraph-io/badger/v4" "github.com/urfave/cli/v2" + + "github.com/justjakka/reencoder/files" ) func runCmd(cCtx *cli.Context) error { - ctx, err := initCmd(cCtx) + ctx, err := initArgs(cCtx) if err != nil { return err } - db, err := buntdb.Open(ctx.Value("dbfile").(string)) + db, err := badger.Open(files.Options(ctx.Value("dbfile").(string))) if err != nil { return err } defer db.Close() - if err := db.Shrink(); err != nil { - return err - } - - if err := db.CreateIndex("process", "*", buntdb.IndexJSON("process")); err != nil { - if err != buntdb.ErrIndexExists { - return err - } - } - ctx = context.WithValue(ctx, "database", db) ctx, stop := signal.NotifyContext(ctx, os.Interrupt) @@ -41,6 +32,10 @@ func runCmd(cCtx *cli.Context) error { return err } + if err = files.ReencodeFlacs(ctx); err != nil { + return err + } + return nil /* @@ -63,7 +58,7 @@ func runCmd(cCtx *cli.Context) error { return cCtx.Err() */ } -func start() { +func Start() { app := &cli.App{ Name: "reencoder", Usage: "reencodes and stores info", diff --git a/cmd/init.go b/cmd/init.go index 18e3b65..2459315 100644 --- a/cmd/init.go +++ b/cmd/init.go @@ -34,7 +34,7 @@ func getDb(cCtx *cli.Context) (context.Context, error) { return context.WithValue(cCtx.Context, "dbfile", ""), errors.New("failed to locate application data folder") } - return context.WithValue(cCtx.Context, "dbfile", filepath.Join(localFolder, "reencoder.db")), nil + return context.WithValue(cCtx.Context, "dbfile", filepath.Join(localFolder, "reencoder")), nil } if _, err := os.Stat(cCtx.Path("dbfile")); err != nil { return context.WithValue(cCtx.Context, "dbfile", ""), err @@ -52,7 +52,7 @@ func checkTools() error { return nil } -func initCmd(cCtx *cli.Context) (context.Context, error) { +func initArgs(cCtx *cli.Context) (context.Context, error) { if err := checkTools(); err != nil { return nil, err } diff --git a/cmd/main.go b/cmd/main.go index 6d4c482..52cefc8 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -1,5 +1,5 @@ package main func main() { - start() + Start() } -- cgit v1.3.1