X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=dirlist.go;h=ab631bb9a7d5b919b7f553678f1744929327ff0d;hb=d88147ed98b816e6a55b9d8b0d82f04459c11504;hp=86c65f49dc4212fa9e9babdbc7aaa238deefed52;hpb=c6d3dfd93ba38b690671e106c93d93ca5066a0f3;p=godlighty.git diff --git a/dirlist.go b/dirlist.go index 86c65f4..ab631bb 100644 --- a/dirlist.go +++ b/dirlist.go @@ -1,6 +1,6 @@ /* godlighty -- highly-customizable HTTP, HTTP/2, HTTPS server -Copyright (C) 2021 Sergey Matveev +Copyright (C) 2021-2023 Sergey Matveev This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -22,6 +22,7 @@ import ( "html/template" "io/fs" "os" + "path" "sort" "time" @@ -57,11 +58,12 @@ type DirListFile struct { IsDir bool Type string ModTime string + Symlink string } func dirList( cfg *HostCfg, - dir string, + dir, pth string, entries []os.DirEntry, readme string, ) (*os.File, error) { @@ -81,7 +83,10 @@ func dirList( if fi.IsDir() { file.IsDir = true } else { - file.Type = mediaType(file.Name, cfg.MIMEOverride) + file.Type = mediaType(file.Name, cfg.MIMEs) + } + if (entry.Type() & fs.ModeSymlink) > 0 { + file.Symlink, _ = os.Readlink(path.Join(pth, fi.Name())) } files = append(files, file) }