PackageManager just because
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.0 KiB

package Filesystem
import (
"PackageManager/Client/Database"
"PackageManager/Client/ProgressBar"
"PackageManager/Variables"
"github.com/vbauerster/mpb"
bolt "go.etcd.io/bbolt"
)
func CommitFiles() error {
var (
indexBucket *bolt.Bucket
picksBucket *bolt.Bucket
bar *mpb.Bar
pickedFiles []string
f string
e error
)
e = Database.FsDB.Batch(func(tx *bolt.Tx) error {
indexBucket = tx.Bucket(Variables.FsHashIndexBucket)
picksBucket = tx.Bucket(Variables.FsHashPicksBucket)
picksBucket.ForEach(func(k, v []byte) error {
pickedFiles = append(pickedFiles, string(k))
return nil
})
if len(pickedFiles) > 0 {
bar = ProgressBar.InitBar("Commiting...", len(pickedFiles))
for _, f = range pickedFiles {
bar.Increment()
e = AddFileToBucket(indexBucket, f)
if e != nil {
return nil
}
}
e = tx.DeleteBucket(Variables.FsHashPicksBucket)
if e != nil {
return e
}
ProgressBar.CloseBar(bar)
}
return nil
})
return e
}