51 lines
1.2 KiB
Python
Executable File
51 lines
1.2 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""Find all CLAUDE.md files in a directory tree."""
|
|
|
|
import os
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
TARGET_FILENAME = "CLAUDE.md"
|
|
|
|
|
|
def find_claude_md_files(root_dir="."):
|
|
"""
|
|
Find all CLAUDE.md files in the directory tree.
|
|
|
|
Args:
|
|
root_dir: Directory to start searching from (default: current directory)
|
|
|
|
Returns:
|
|
List of paths to CLAUDE.md files, sorted by depth (root first)
|
|
"""
|
|
claude_md_files = []
|
|
root_path = Path(root_dir).resolve()
|
|
|
|
for dirpath, dirnames, filenames in os.walk(root_path):
|
|
if TARGET_FILENAME in filenames:
|
|
file_path = Path(dirpath) / TARGET_FILENAME
|
|
rel_path = file_path.relative_to(root_path)
|
|
claude_md_files.append(str(rel_path))
|
|
|
|
# Sort by depth (root first, then by path)
|
|
claude_md_files.sort(key=lambda p: (p.count(os.sep), p))
|
|
|
|
return claude_md_files
|
|
|
|
|
|
def main():
|
|
"""Main entry point."""
|
|
root_dir = sys.argv[1] if len(sys.argv) > 1 else "."
|
|
|
|
files = find_claude_md_files(root_dir)
|
|
|
|
if not files:
|
|
sys.exit(f"No {TARGET_FILENAME} files found")
|
|
|
|
for file_path in files:
|
|
print(file_path)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|