feat: Implement basic remove command which modifies the index

This commit is contained in:
Felicitas Pojtinger
2021-11-21 14:02:21 +01:00
parent aefbe4bbce
commit b78e577ed0
3 changed files with 66 additions and 6 deletions
+47
View File
@@ -0,0 +1,47 @@
package cmd
import (
"context"
"log"
"github.com/pojntfx/stfs/pkg/persisters"
"github.com/spf13/cobra"
"github.com/spf13/viper"
)
const (
nameFlag = "name"
)
var removeCmd = &cobra.Command{
Use: "remove",
Aliases: []string{"r"},
Short: "Remove a file from tape or tar file and index",
RunE: func(cmd *cobra.Command, args []string) error {
if err := viper.BindPFlags(cmd.PersistentFlags()); err != nil {
return err
}
metadataPersister := persisters.NewMetadataPersister(viper.GetString(dbFlag))
if err := metadataPersister.Open(); err != nil {
return err
}
hdr, err := metadataPersister.DeleteHeader(context.Background(), viper.GetString(nameFlag))
if err != nil {
return err
}
log.Println(hdr.Record, hdr.Block)
return nil
},
}
func init() {
removeCmd.PersistentFlags().StringP(nameFlag, "n", "", "Name of the file to remove")
viper.AutomaticEnv()
rootCmd.AddCommand(removeCmd)
}
+2 -2
View File
@@ -33,10 +33,10 @@ func Execute() {
if err != nil {
panic(err)
}
workingDirDefault := filepath.Join(home, ".local", "share", "stcache", "var", "lib", "stcache")
dbPath := filepath.Join(home, ".local", "share", "stbak", "var", "lib", "stbak", "metadata.sqlite")
rootCmd.PersistentFlags().StringP(tapeFlag, "t", "/dev/nst0", "Tape or tar file to use")
rootCmd.PersistentFlags().StringP(dbFlag, "d", filepath.Join(workingDirDefault, "index.sqlite"), "Database to use")
rootCmd.PersistentFlags().StringP(dbFlag, "d", dbPath, "Database to use")
if err := viper.BindPFlags(rootCmd.PersistentFlags()); err != nil {
panic(err)