diff options
| author | jakka <jakkadoujin@gmail.com> | 2025-04-12 14:44:39 +0300 |
|---|---|---|
| committer | jakka <jakkadoujin@gmail.com> | 2025-04-12 14:44:39 +0300 |
| commit | 1675136966473083e970badfe92433a05d2d7fee (patch) | |
| tree | 5cd22f2ee065514a1c5db508f6d6a5ed3757c454 /cmd/cmd.go | |
| parent | 6f3071a58211598ee23d1ef6ab17156e15b2e27b (diff) | |
implemented database and concurrent file scanning
Diffstat (limited to 'cmd/cmd.go')
| -rw-r--r-- | cmd/cmd.go | 58 |
1 files changed, 38 insertions, 20 deletions
@@ -1,14 +1,13 @@ package main import ( - "fmt" + "context" "os" "os/signal" - "time" + "github.com/justjakka/reencoder/files" "github.com/tidwall/buntdb" "github.com/urfave/cli/v2" - "golang.org/x/sync/errgroup" ) func runCmd(cCtx *cli.Context) error { @@ -17,32 +16,51 @@ func runCmd(cCtx *cli.Context) error { return err } - db, err := buntdb.Open(ctx.Value("database").(string)) + db, err := buntdb.Open(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) defer stop() - test := new(errgroup.Group) - test.SetLimit(3) - for n := 1; n < 10; n++ { - test.Go(func() error { - select { - case <-ctx.Done(): - return nil - default: - fmt.Println("test") - time.Sleep(3 * time.Second) - return nil - } - }) + if err = files.IndexFlacs(ctx); err != nil { + return err } - _ = test.Wait() - fmt.Println("reached") - return cCtx.Err() + + return nil + + /* + test := new(errgroup.Group) + test.SetLimit(3) + for n := 1; n < 10; n++ { + test.Go(func() error { + select { + case <-ctx.Done(): + return nil + default: + fmt.Println("test") + time.Sleep(3 * time.Second) + return nil + } + }) + } + _ = test.Wait() + fmt.Println("reached") + return cCtx.Err() */ } func start() { |
