From 72bee49d3fc2e345dc0a8baa528a14f3fa516e50 Mon Sep 17 00:00:00 2001 From: Bartal Laearsson Date: Thu, 13 Aug 2026 20:53:21 +0100 Subject: [PATCH] add postfix repos name to all files --- cmd/root.go | 7 +++++-- internal/renderer/renderer.go | 24 +++++++++++++----------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/cmd/root.go b/cmd/root.go index 2dc79b7..9121813 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -154,6 +154,7 @@ func run(cmd *cobra.Command, args []string) error { return fmt.Errorf("cannot create output directory: %w", err) } + repoName := filepath.Base(cfg.AbsRoot) fmt.Printf("%s\n", absOutput) result, err := walker.Run(cfg) @@ -165,8 +166,10 @@ func run(cmd *cobra.Command, args []string) error { return fmt.Errorf("no readable text files found in %s", cfg.AbsRoot) } + indexBasename := "index_" + repoName + ".md" + if verticalSlices { - generated, err := renderer.WriteSlices(result, absOutput) + generated, err := renderer.WriteSlices(result, absOutput, repoName) if err != nil { return err } @@ -197,7 +200,7 @@ func run(cmd *cobra.Command, args []string) error { return nil } - indexPath := filepath.Join(absOutput, "index.md") + indexPath := filepath.Join(absOutput, indexBasename) if err := renderer.Write(result, indexPath, appendMode, cfg.SingleFile); err != nil { return err diff --git a/internal/renderer/renderer.go b/internal/renderer/renderer.go index 62d6399..b6973ce 100644 --- a/internal/renderer/renderer.go +++ b/internal/renderer/renderer.go @@ -84,7 +84,7 @@ func Write(result *walker.Result, outputPath string, appendMode bool, singleFile // WriteSlices generates a root markdown file plus one markdown per top-level directory. // Returns the list of generated file paths. -func WriteSlices(result *walker.Result, outputDir string) ([]string, error) { +func WriteSlices(result *walker.Result, outputDir, repoName string) ([]string, error) { entries := result.Entries if len(entries) == 0 { return nil, fmt.Errorf("no entries to write") @@ -109,11 +109,12 @@ func WriteSlices(result *walker.Result, outputDir string) ([]string, error) { var generated []string - // Write root file as index.md - rootPath := filepath.Join(outputDir, "index.md") + // Write root file as index_.md + indexBasename := "index_" + repoName + ".md" + rootPath := filepath.Join(outputDir, indexBasename) generated = append(generated, rootPath) - if err := writeRootSlice(rootPath, absRoot, rootName, rootFiles, topLevelDirs); err != nil { + if err := writeRootSlice(rootPath, absRoot, rootName, repoName, rootFiles, topLevelDirs); err != nil { return nil, fmt.Errorf("failed to write root slice: %w", err) } @@ -125,7 +126,7 @@ func WriteSlices(result *walker.Result, outputDir string) ([]string, error) { sort.Strings(dirNames) for _, dirName := range dirNames { - sliceName := strings.TrimSuffix(dirName, "/") + ".md" + sliceName := strings.TrimSuffix(dirName, "/") + "_" + repoName + ".md" sliceDir := filepath.Join(outputDir, dirName) if err := os.MkdirAll(sliceDir, 0755); err != nil { return nil, fmt.Errorf("cannot create slice directory %s: %w", sliceDir, err) @@ -150,7 +151,7 @@ func WriteSlices(result *walker.Result, outputDir string) ([]string, error) { } } - if err := writeDirSlice(slicePath, absDir, absRoot, dirName, treeEntries, dirEntries, "index.md"); err != nil { + if err := writeDirSlice(slicePath, absDir, absRoot, dirName, treeEntries, dirEntries, indexBasename); err != nil { return nil, fmt.Errorf("failed to write slice %s: %w", sliceName, err) } } @@ -158,7 +159,7 @@ func WriteSlices(result *walker.Result, outputDir string) ([]string, error) { return generated, nil } -func writeRootSlice(path, absRoot, rootName string, rootFiles []walker.Entry, topLevelDirs map[string][]walker.Entry) error { +func writeRootSlice(path, absRoot, rootName, repoName string, rootFiles []walker.Entry, topLevelDirs map[string][]walker.Entry) error { f, err := os.Create(path) if err != nil { return fmt.Errorf("cannot create root file: %w", err) @@ -170,7 +171,7 @@ func writeRootSlice(path, absRoot, rootName string, rootFiles []walker.Entry, to fmt.Fprintf(&sb, "# %s [ROOT]\n\n", absRoot) // Build combined tree with references - treeLines := buildTreeWithRefs(rootName, topLevelDirs, rootFiles) + treeLines := buildTreeWithRefs(rootName, repoName, topLevelDirs, rootFiles) sb.WriteString("## Directory Tree\n\n") sb.WriteString(fenceChars + "\n") sb.WriteString(treeLines) @@ -196,7 +197,7 @@ func writeRootSlice(path, absRoot, rootName string, rootFiles []walker.Entry, to for _, e := range entries { totalBytes += e.Size } - sliceFile := filepath.Join(dirName, strings.TrimSuffix(dirName, "/")+".md") + sliceFile := filepath.Join(dirName, strings.TrimSuffix(dirName, "/")+"_"+repoName+".md") fmt.Fprintf(&sb, "| %s | %s/ | %d | %d |\n", sliceFile, dirName, fileCount, totalBytes) } sb.WriteString("\n") @@ -292,7 +293,7 @@ func writeDirSlice(path, absDir, absRoot, dirName string, treeEntries, fileEntri return err } -func buildTreeWithRefs(rootName string, topLevelDirs map[string][]walker.Entry, rootFiles []walker.Entry) string { +func buildTreeWithRefs(rootName, repoName string, topLevelDirs map[string][]walker.Entry, rootFiles []walker.Entry) string { var sb strings.Builder sb.WriteString(rootName) sb.WriteString("/\n") @@ -318,10 +319,11 @@ func buildTreeWithRefs(rootName string, topLevelDirs map[string][]walker.Entry, items := make([]treeItem, 0, len(dirNames)+len(rootFiles)) for _, d := range dirNames { + sliceRef := filepath.Join(d, strings.TrimSuffix(d, "/")+"_"+repoName+".md") items = append(items, treeItem{ name: d, isDir: true, - sliceRef: filepath.Join(d, strings.TrimSuffix(d, "/")+".md"), + sliceRef: sliceRef, }) } for _, rf := range rootFiles {