diff --git a/cmd/s3-genindex/main.go b/cmd/s3-genindex/main.go index 2f12568..10ac9e1 100644 --- a/cmd/s3-genindex/main.go +++ b/cmd/s3-genindex/main.go @@ -269,17 +269,22 @@ func generateS3HTML(entries []indexgen.FileEntry, opts *indexgen.Options, client return fmt.Errorf("failed to get HTML template") } + // Determine if we're at root level (no parent directory) + isRoot := (indexKey == opts.OutputFile) // root level index.html + // Prepare template data (similar to ProcessDir in indexgen) data := struct { DirName string Entries []indexgen.FileEntry DirAppend bool OutputFile string + IsRoot bool }{ DirName: opts.TopDir, // Use bucket name as directory name Entries: entries, DirAppend: opts.DirAppend, OutputFile: opts.OutputFile, + IsRoot: isRoot, } // Generate HTML content in memory diff --git a/internal/indexgen/indexgen.go b/internal/indexgen/indexgen.go index b1d80c9..c4d4d5f 100644 --- a/internal/indexgen/indexgen.go +++ b/internal/indexgen/indexgen.go @@ -214,11 +214,13 @@ func ProcessDir(topDir string, opts *Options) error { Entries []FileEntry DirAppend bool OutputFile string + IsRoot bool }{ DirName: dirName, Entries: entries, DirAppend: opts.DirAppend, OutputFile: opts.OutputFile, + IsRoot: false, // Local filesystem always shows parent directory } if opts.DryRun { @@ -957,6 +959,7 @@ const htmlTemplateString = ` + {{if not .IsRoot}} @@ -969,6 +972,7 @@ const htmlTemplateString = ` — + {{end}} {{range .Entries}}