]> git.lizzy.rs Git - micro.git/blobdiff - cmd/micro/clean.go
remove carriage return from -clean prompt and fix broken logic (#2186)
[micro.git] / cmd / micro / clean.go
index cfa65336015042628d50af2b276945ef091c7ec4..7dfd2c7a2b50eb3d7a593eb22c6994f4b82f6bb1 100644 (file)
@@ -10,8 +10,8 @@ import (
        "sort"
        "strings"
 
-       "github.com/zyedidia/micro/internal/buffer"
-       "github.com/zyedidia/micro/internal/config"
+       "github.com/zyedidia/micro/v2/internal/buffer"
+       "github.com/zyedidia/micro/v2/internal/config"
 )
 
 func shouldContinue() bool {
@@ -23,12 +23,9 @@ func shouldContinue() bool {
                return false
        }
 
-       if len(text) <= 1 {
-               // default continue
-               return true
-       }
+    text = strings.TrimRight(text, "\r\n")
 
-       return strings.ToLower(text)[0] == 'y'
+       return len(text) == 0 || strings.ToLower(text)[0] == 'y'
 }
 
 // CleanConfig performs cleanup in the user's configuration directory
@@ -41,6 +38,9 @@ func CleanConfig() {
                return
        }
 
+       fmt.Println("Cleaning default settings")
+       config.WriteSettings(filepath.Join(config.ConfigDir, "settings.json"))
+
        // detect unused options
        var unusedOptions []string
        defaultSettings := config.DefaultAllSettings()
@@ -94,14 +94,13 @@ func CleanConfig() {
                        file, e := os.Open(fname)
 
                        if e == nil {
-                               defer file.Close()
-
                                decoder := gob.NewDecoder(file)
                                err = decoder.Decode(&buffer)
 
                                if err != nil && f.Name() != "history" {
                                        badFiles = append(badFiles, fname)
                                }
+                               file.Close()
                        }
                }
 
@@ -111,15 +110,21 @@ func CleanConfig() {
                        fmt.Printf("Removing badly formatted files in %s\n", filepath.Join(config.ConfigDir, "buffers"))
 
                        if shouldContinue() {
+                               removed := 0
                                for _, f := range badFiles {
                                        err := os.Remove(f)
                                        if err != nil {
                                                fmt.Println(err)
                                                continue
                                        }
+                                       removed++
                                }
 
-                               fmt.Println("Removed badly formatted files")
+                               if removed == 0 {
+                                       fmt.Println("Failed to remove files")
+                               } else {
+                                       fmt.Printf("Removed %d badly formatted files\n", removed)
+                               }
                                fmt.Print("\n\n")
                        }
                }