summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fsck.go18
1 files changed, 18 insertions, 0 deletions
diff --git a/fsck.go b/fsck.go
index 7741d19..32788e5 100644
--- a/fsck.go
+++ b/fsck.go
@@ -4,6 +4,8 @@ import (
"fmt"
"os"
"path/filepath"
+ "sort"
+ "strings"
"syscall"
"github.com/hanwen/go-fuse/fuse"
@@ -27,6 +29,8 @@ func (ck *fsckObj) dir(path string) {
ck.errorCount++
return
}
+ // Sort alphabetically
+ sort.Sort(sortableDirEntries(entries))
for _, entry := range entries {
if entry.Name == "." || entry.Name == ".." {
continue
@@ -102,3 +106,17 @@ func fsck(args *argContainer) {
os.Exit(exitcodes.FsckErrors)
}
}
+
+type sortableDirEntries []fuse.DirEntry
+
+func (s sortableDirEntries) Len() int {
+ return len(s)
+}
+
+func (s sortableDirEntries) Swap(i, j int) {
+ s[i], s[j] = s[j], s[i]
+}
+
+func (s sortableDirEntries) Less(i, j int) bool {
+ return strings.Compare(s[i].Name, s[j].Name) < 0
+}