From 177da57e0a193777672f9736c1e75e1f0d6fdad8 Mon Sep 17 00:00:00 2001 From: Yotam Nachum Date: Fri, 6 Dec 2019 22:32:44 +0200 Subject: Add custom index file name --- handler.go | 8 +++++--- input.go | 13 +++++++++++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/handler.go b/handler.go index addc538..804c4b2 100644 --- a/handler.go +++ b/handler.go @@ -59,9 +59,11 @@ func (h Handler) getFilePath(rawURL string) (string, error) { return itemPath, nil } - indexPath := filepath.Join(itemPath, "index.gmi") - if isFile(indexPath) { - return indexPath, nil + for _, indexFile := range h.cfg.IndexFiles { + indexPath := filepath.Join(itemPath, indexFile) + if isFile(indexPath) { + return indexPath, nil + } } return "", gemini.Error{Err: fmt.Errorf("file not found"), Status: gemini.StatusNotFound} diff --git a/input.go b/input.go index f532476..57df49e 100644 --- a/input.go +++ b/input.go @@ -33,9 +33,14 @@ func getFlags() (Flags, error) { // Config holds the main configuration data for the server type Config struct { + // can be relative or absolute path SourceDir string `toml:"source"` - TLSCert string `toml:"tls_certificate"` - TLSKey string `toml:"tls_key"` + + // default to ["index.gmi"] + IndexFiles []string `toml:"index_files"` + + TLSCert string `toml:"tls_certificate"` + TLSKey string `toml:"tls_key"` } func getConfig(path string) (Config, error) { @@ -55,5 +60,9 @@ func getConfig(path string) (Config, error) { return cfg, fmt.Errorf("failed to get absolute source dir: %v", err) } + if len(cfg.IndexFiles) == 0 { + cfg.IndexFiles = []string{"index.gmi"} + } + return cfg, nil } -- cgit v1.2.3