github.com/Cloud-Foundations/Dominator@v0.3.4/lib/filesystem/untar/sort.go (about) 1 package untar 2 3 import ( 4 "sort" 5 6 "github.com/Cloud-Foundations/Dominator/lib/filesystem" 7 ) 8 9 type directoryEntryList []*filesystem.DirectoryEntry 10 11 func sortDirectory(directory *filesystem.DirectoryInode) { 12 var entryList directoryEntryList 13 entryList = directory.EntryList 14 sort.Sort(entryList) 15 directory.EntryList = entryList 16 // Recurse through directories. 17 for _, dirent := range directory.EntryList { 18 if inode, ok := dirent.Inode().(*filesystem.DirectoryInode); ok { 19 sortDirectory(inode) 20 } 21 } 22 } 23 24 func (list directoryEntryList) Len() int { 25 return len(list) 26 } 27 28 func (list directoryEntryList) Less(left, right int) bool { 29 if list[left].Name < list[right].Name { 30 return true 31 } 32 return false 33 } 34 35 func (list directoryEntryList) Swap(left, right int) { 36 list[left], list[right] = list[right], list[left] 37 }