diff --git a/src/calanonsync/settings.go b/src/calanonsync/settings.go index 3b64a92..aa8ff8f 100644 --- a/src/calanonsync/settings.go +++ b/src/calanonsync/settings.go @@ -6,7 +6,6 @@ import ( "crypto/rand" "encoding/base64" "encoding/json" - "fmt" "github.com/spf13/cobra" "golang.org/x/crypto/ssh/terminal" "io" @@ -192,8 +191,30 @@ func runSettingsEncryption(cmd *cobra.Command, args []string) { if err != nil { panic(err) } + + log.Println("Settings encrypted") } func runSettingsDecryption(cmd *cobra.Command, args []string) { - fmt.Println("Decrypt") + s := LoadSettings() + + // Rewrite the settings file. + f, err := os.OpenFile(settingsName, os.O_WRONLY|os.O_TRUNC, 0600) + if err != nil { + log.Fatalf("Could not rewrite settings: %s\n", err) + } + defer f.Close() + e := json.NewEncoder(f) + e.SetIndent("", " ") + err = e.Encode(&s) + if err != nil { + panic(err) + } + + err = os.Remove(keyName) + if err != nil { + log.Fatalf("Could not remove key file: %s\n", err) + } + + log.Println("Settings decrypted") }