add postfix repos name to all files

This commit is contained in:
Bartal Laearsson
2026-08-13 20:53:21 +01:00
parent 1e913c784e
commit 72bee49d3f
2 changed files with 18 additions and 13 deletions
+5 -2
View File
@@ -154,6 +154,7 @@ func run(cmd *cobra.Command, args []string) error {
return fmt.Errorf("cannot create output directory: %w", err) return fmt.Errorf("cannot create output directory: %w", err)
} }
repoName := filepath.Base(cfg.AbsRoot)
fmt.Printf("%s\n", absOutput) fmt.Printf("%s\n", absOutput)
result, err := walker.Run(cfg) 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) return fmt.Errorf("no readable text files found in %s", cfg.AbsRoot)
} }
indexBasename := "index_" + repoName + ".md"
if verticalSlices { if verticalSlices {
generated, err := renderer.WriteSlices(result, absOutput) generated, err := renderer.WriteSlices(result, absOutput, repoName)
if err != nil { if err != nil {
return err return err
} }
@@ -197,7 +200,7 @@ func run(cmd *cobra.Command, args []string) error {
return nil return nil
} }
indexPath := filepath.Join(absOutput, "index.md") indexPath := filepath.Join(absOutput, indexBasename)
if err := renderer.Write(result, indexPath, appendMode, cfg.SingleFile); err != nil { if err := renderer.Write(result, indexPath, appendMode, cfg.SingleFile); err != nil {
return err return err
+13 -11
View File
@@ -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. // WriteSlices generates a root markdown file plus one markdown per top-level directory.
// Returns the list of generated file paths. // 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 entries := result.Entries
if len(entries) == 0 { if len(entries) == 0 {
return nil, fmt.Errorf("no entries to write") return nil, fmt.Errorf("no entries to write")
@@ -109,11 +109,12 @@ func WriteSlices(result *walker.Result, outputDir string) ([]string, error) {
var generated []string var generated []string
// Write root file as index.md // Write root file as index_<reponame>.md
rootPath := filepath.Join(outputDir, "index.md") indexBasename := "index_" + repoName + ".md"
rootPath := filepath.Join(outputDir, indexBasename)
generated = append(generated, rootPath) 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) 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) sort.Strings(dirNames)
for _, dirName := range dirNames { for _, dirName := range dirNames {
sliceName := strings.TrimSuffix(dirName, "/") + ".md" sliceName := strings.TrimSuffix(dirName, "/") + "_" + repoName + ".md"
sliceDir := filepath.Join(outputDir, dirName) sliceDir := filepath.Join(outputDir, dirName)
if err := os.MkdirAll(sliceDir, 0755); err != nil { if err := os.MkdirAll(sliceDir, 0755); err != nil {
return nil, fmt.Errorf("cannot create slice directory %s: %w", sliceDir, err) 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) 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 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) f, err := os.Create(path)
if err != nil { if err != nil {
return fmt.Errorf("cannot create root file: %w", err) 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) fmt.Fprintf(&sb, "# %s [ROOT]\n\n", absRoot)
// Build combined tree with references // Build combined tree with references
treeLines := buildTreeWithRefs(rootName, topLevelDirs, rootFiles) treeLines := buildTreeWithRefs(rootName, repoName, topLevelDirs, rootFiles)
sb.WriteString("## Directory Tree\n\n") sb.WriteString("## Directory Tree\n\n")
sb.WriteString(fenceChars + "\n") sb.WriteString(fenceChars + "\n")
sb.WriteString(treeLines) sb.WriteString(treeLines)
@@ -196,7 +197,7 @@ func writeRootSlice(path, absRoot, rootName string, rootFiles []walker.Entry, to
for _, e := range entries { for _, e := range entries {
totalBytes += e.Size 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) fmt.Fprintf(&sb, "| %s | %s/ | %d | %d |\n", sliceFile, dirName, fileCount, totalBytes)
} }
sb.WriteString("\n") sb.WriteString("\n")
@@ -292,7 +293,7 @@ func writeDirSlice(path, absDir, absRoot, dirName string, treeEntries, fileEntri
return err 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 var sb strings.Builder
sb.WriteString(rootName) sb.WriteString(rootName)
sb.WriteString("/\n") sb.WriteString("/\n")
@@ -318,10 +319,11 @@ func buildTreeWithRefs(rootName string, topLevelDirs map[string][]walker.Entry,
items := make([]treeItem, 0, len(dirNames)+len(rootFiles)) items := make([]treeItem, 0, len(dirNames)+len(rootFiles))
for _, d := range dirNames { for _, d := range dirNames {
sliceRef := filepath.Join(d, strings.TrimSuffix(d, "/")+"_"+repoName+".md")
items = append(items, treeItem{ items = append(items, treeItem{
name: d, name: d,
isDir: true, isDir: true,
sliceRef: filepath.Join(d, strings.TrimSuffix(d, "/")+".md"), sliceRef: sliceRef,
}) })
} }
for _, rf := range rootFiles { for _, rf := range rootFiles {