feat(Keygen&Config): Disabled encryption key generation and prevented SaveConfig from overwriting config files

This commit is contained in:
Chris Seitz
2024-05-04 12:47:36 -04:00
parent e4b33cad1f
commit 8e6372ecc2
3 changed files with 24 additions and 16 deletions

View File

@@ -23,6 +23,10 @@
<br>
<br>
### Modifications by cseitz
- Disabled functionality to overwrite config files. You will need to specifiy restic repo keys manually.
### 💭 Why / What?
Autorestic is a wrapper around the amazing [restic](https://restic.net/). While being amazing the restic cli can be a bit overwhelming and difficult to manage if you have many different locations that you want to backup to multiple locations. This utility is aimed at making this easier 🙂.

View File

@@ -104,16 +104,17 @@ func (b Backend) validate() error {
// Check if key is set in environment
env, _ := b.getEnv()
if _, found := env["RESTIC_PASSWORD"]; !found {
return fmt.Errorf(`Backend "%s" has no encryption key. The encryption key is required!"`, b.name)
// No key set in config file or env => generate random key and save file
key := generateRandomKey()
b.Key = key
c := GetConfig()
tmp := c.Backends[b.name]
tmp.Key = key
c.Backends[b.name] = tmp
if err := c.SaveConfig(); err != nil {
return err
}
// key := generateRandomKey()
// b.Key = key
// c := GetConfig()
// tmp := c.Backends[b.name]
// tmp.Key = key
// c.Backends[b.name] = tmp
// if err := c.SaveConfig(); err != nil {
// return err
// }
}
}
env, err := b.getEnv()

View File

@@ -263,16 +263,19 @@ func AddFlagsToCommand(cmd *cobra.Command, backend bool) {
}
func (c *Config) SaveConfig() error {
file := viper.ConfigFileUsed()
if err := CopyFile(file, file+".old"); err != nil {
return err
if true {
return fmt.Errorf(`Not overwriting config; throwing error`);
}
colors.Secondary.Println("Saved a backup copy of your file next to the original.")
// file := viper.ConfigFileUsed()
// if err := CopyFile(file, file+".old"); err != nil {
// return err
// }
// colors.Secondary.Println("Saved a backup copy of your file next to the original.")
viper.Set("backends", c.Backends)
viper.Set("locations", c.Locations)
// viper.Set("backends", c.Backends)
// viper.Set("locations", c.Locations)
return viper.WriteConfig()
// return viper.WriteConfig()
}
func optionToString(option string) string {