add postfix repos name to all files
This commit is contained in:
+5
-2
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user