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)
}
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
+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.
// 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_<reponame>.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 {