26 lines
854 B
Go
26 lines
854 B
Go
package cmd
|
|
|
|
import (
|
|
"github.com/spf13/cobra"
|
|
"github.com/spf13/viper"
|
|
)
|
|
|
|
var backupCmd = &cobra.Command{
|
|
Use: "backup",
|
|
Short: "Run an incremental backup job",
|
|
Long: `Run incremental backups to cloud targets (via Rclone) or local targets (via Rsync).`,
|
|
}
|
|
|
|
func init() {
|
|
rootCmd.AddCommand(backupCmd)
|
|
|
|
// Flags inherited by both 'cloud' and 'local' subcommands
|
|
backupCmd.PersistentFlags().StringP("src", "s", "", "source directory")
|
|
backupCmd.PersistentFlags().StringP("dst", "d", "", "destination directory")
|
|
backupCmd.PersistentFlags().Int("keep", 14, "number of incremental versions to retain")
|
|
|
|
_ = viper.BindPFlag("source", backupCmd.PersistentFlags().Lookup("src"))
|
|
_ = viper.BindPFlag("destination", backupCmd.PersistentFlags().Lookup("dst"))
|
|
_ = viper.BindPFlag("keep_incrementals", backupCmd.PersistentFlags().Lookup("keep"))
|
|
}
|