From dda9a68499ee8bb852f1ab4d5361b8524334f91e Mon Sep 17 00:00:00 2001 From: Tom Adams Date: Thu, 18 Jun 2015 22:39:49 -0400 Subject: [PATCH] browse: Sort directory contents by name --- middleware/browse/browse.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/middleware/browse/browse.go b/middleware/browse/browse.go index ea2ff52c8..a4709f24a 100644 --- a/middleware/browse/browse.go +++ b/middleware/browse/browse.go @@ -9,6 +9,7 @@ import ( "net/url" "os" "path" + "sort" "strings" "time" @@ -65,6 +66,12 @@ func (fi FileInfo) HumanModTime(format string) string { return fi.ModTime.Format(format) } +type fileInfoByName []FileInfo + +func (fi fileInfoByName) Len() int { return len(fi) } +func (fi fileInfoByName) Swap(i, j int) { fi[i], fi[j] = fi[j], fi[i] } +func (fi fileInfoByName) Less(i, j int) bool { return fi[i].Name < fi[j].Name } + var IndexPages = []string{ "index.html", "index.htm", @@ -149,6 +156,8 @@ func (b Browse) ServeHTTP(w http.ResponseWriter, r *http.Request) (int, error) { continue } + sort.Sort(fileInfoByName(fileinfos)) + // Determine if user can browse up another folder var canGoUp bool curPath := strings.TrimSuffix(r.URL.Path, "/")