diff options
| -rw-r--r-- | fsck.go | 18 | 
1 files changed, 18 insertions, 0 deletions
| @@ -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 +} | 
