import os import sys from datetime import datetime from pathlib import Path def merge_specs(feature_number): specs_dir = Path("specs") if not specs_dir.exists(): print("Error: 'specs' directory not found.") return # Find the directory starting with the feature number target_dir = None for item in specs_dir.iterdir(): if item.is_dir() and item.name.startswith(f"{feature_number}-"): target_dir = item break if not target_dir: print(f"Error: No directory found for feature number '{feature_number}' in 'specs/'.") return feature_name = target_dir.name now = datetime.now().strftime("%Y%m%d-%H%M%S") output_filename = f"{feature_name}-{now}.md" content_blocks = ["Мой коллега предложил такую фичу, оцени ее\n"] # Recursively find all files files_to_merge = sorted([f for f in target_dir.rglob("*") if f.is_file()]) for file_path in files_to_merge: relative_path = file_path.relative_to(target_dir) try: with open(file_path, "r", encoding="utf-8") as f: file_content = f.read() content_blocks.append(f"--- FILE: {relative_path} ---\n") content_blocks.append(file_content) content_blocks.append("\n") except Exception as e: print(f"Skipping file {file_path} due to error: {e}") with open(output_filename, "w", encoding="utf-8") as f: f.write("\n".join(content_blocks)) print(f"Successfully created: {output_filename}") if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: python merge_spec.py ") sys.exit(1) merge_specs(sys.argv[1])