Add an option to not include symlinks in dirlist. #21
|
@ -235,6 +235,8 @@ directory listing:
|
||||||
directory listings will use the first top-level heading (i.e. line
|
directory listings will use the first top-level heading (i.e. line
|
||||||
beginning with "# ") in files with an extension of `GeminiExt`
|
beginning with "# ") in files with an extension of `GeminiExt`
|
||||||
instead of the filename (default value false).
|
instead of the filename (default value false).
|
||||||
|
* `DirectoryLinks` (boolean): if false, symlinks will not be included
|
||||||
|
in the automatically generated directory listings.
|
||||||
|
|
||||||
### Redirects
|
### Redirects
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,7 @@ type Config struct {
|
||||||
DirectorySort string
|
DirectorySort string
|
||||||
DirectoryReverse bool
|
DirectoryReverse bool
|
||||||
DirectoryTitles bool
|
DirectoryTitles bool
|
||||||
|
DirectoryLinks bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type MollyFile struct {
|
type MollyFile struct {
|
||||||
|
@ -41,6 +42,7 @@ type MollyFile struct {
|
||||||
DirectorySort string
|
DirectorySort string
|
||||||
DirectoryReverse bool
|
DirectoryReverse bool
|
||||||
DirectoryTitles bool
|
DirectoryTitles bool
|
||||||
|
DirectoryLinks bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func getConfig(filename string) (Config, error) {
|
func getConfig(filename string) (Config, error) {
|
||||||
|
@ -126,6 +128,7 @@ func parseMollyFiles(path string, config *Config, errorLog *log.Logger) {
|
||||||
mollyFile.DirectorySort = config.DirectorySort
|
mollyFile.DirectorySort = config.DirectorySort
|
||||||
mollyFile.DirectoryReverse = config.DirectoryReverse
|
mollyFile.DirectoryReverse = config.DirectoryReverse
|
||||||
mollyFile.DirectoryTitles = config.DirectoryTitles
|
mollyFile.DirectoryTitles = config.DirectoryTitles
|
||||||
|
mollyFile.DirectoryLinks = config.DirectoryLinks
|
||||||
// Build list of directories to check
|
// Build list of directories to check
|
||||||
var dirs []string
|
var dirs []string
|
||||||
dirs = append(dirs, path)
|
dirs = append(dirs, path)
|
||||||
|
@ -163,6 +166,7 @@ func parseMollyFiles(path string, config *Config, errorLog *log.Logger) {
|
||||||
config.DirectorySort = mollyFile.DirectorySort
|
config.DirectorySort = mollyFile.DirectorySort
|
||||||
config.DirectoryReverse = mollyFile.DirectoryReverse
|
config.DirectoryReverse = mollyFile.DirectoryReverse
|
||||||
config.DirectoryTitles = mollyFile.DirectoryTitles
|
config.DirectoryTitles = mollyFile.DirectoryTitles
|
||||||
|
config.DirectoryLinks = mollyFile.DirectoryLinks
|
||||||
for key, value := range mollyFile.TempRedirects {
|
for key, value := range mollyFile.TempRedirects {
|
||||||
config.TempRedirects[key] = value
|
config.TempRedirects[key] = value
|
||||||
}
|
}
|
||||||
|
|
13
dirlist.go
13
dirlist.go
|
@ -13,10 +13,21 @@ import (
|
||||||
|
|
||||||
func generateDirectoryListing(URL *url.URL, path string, config Config) (string, error) {
|
func generateDirectoryListing(URL *url.URL, path string, config Config) (string, error) {
|
||||||
var listing string
|
var listing string
|
||||||
files, err := ioutil.ReadDir(path)
|
rfiles, err := ioutil.ReadDir(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return listing, err
|
return listing, err
|
||||||
}
|
}
|
||||||
|
var files []os.FileInfo
|
||||||
|
if config.DirectoryLinks {
|
||||||
|
files = rfiles
|
||||||
|
} else {
|
||||||
|
for _, file := range rfiles {
|
||||||
|
if file.Mode() & os.ModeSymlink == 0 {
|
||||||
|
files = append(files, file)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
listing = "# Directory listing\n\n"
|
listing = "# Directory listing\n\n"
|
||||||
// Override with .mollyhead file
|
// Override with .mollyhead file
|
||||||
header_path := filepath.Join(path, ".mollyhead")
|
header_path := filepath.Join(path, ".mollyhead")
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
#DirectorySort = "Time"
|
#DirectorySort = "Time"
|
||||||
#DirectoryReverse = true
|
#DirectoryReverse = true
|
||||||
#DirectoryTitles = true
|
#DirectoryTitles = true
|
||||||
|
#DirectoryLinks = false
|
||||||
#
|
#
|
||||||
## Dynamic content
|
## Dynamic content
|
||||||
#
|
#
|
||||||
|
|
Loading…
Reference in New Issue