#!/usr/bin/env python3
"""
performance-regression-detector - Generator Script
Creates a comment on a GitHub pull request, highlighting detected performance regressions and linking to the generated report.
Generated: 2025-12-10 03:48:17
"""

import os
import json
import argparse
from pathlib import Path
from datetime import datetime

class Generator:
    def __init__(self, config: Dict):
        self.config = config
        self.output_dir = Path(config.get('output', './output'))
        self.output_dir.mkdir(parents=True, exist_ok=True)

    def generate_markdown(self, title: str, content: str) -> Path:
        """Generate markdown document."""
        filename = f"{title.lower().replace(' ', '_')}_{datetime.now().strftime('%Y%m%d_%H%M%S')}.md"
        file_path = self.output_dir / filename

        md_content = f"""# {title}

Generated by performance-regression-detector
Date: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}

## Overview
{content}

## Configuration
```json
{json.dumps(self.config, indent=2)}
```

## Category
performance

## Plugin
performance-regression-detector
"""

        file_path.write_text(md_content)
        return file_path

    def generate_json(self, data: Dict) -> Path:
        """Generate JSON output."""
        filename = f"output_{datetime.now().strftime('%Y%m%d_%H%M%S')}.json"
        file_path = self.output_dir / filename

        output_data = {
            "generated_by": "performance-regression-detector",
            "timestamp": datetime.now().isoformat(),
            "category": "performance",
            "plugin": "performance-regression-detector",
            "data": data,
            "config": self.config
        }

        with open(file_path, 'w') as f:
            json.dump(output_data, f, indent=2)

        return file_path

    def generate_script(self, name: str, template: str) -> Path:
        """Generate executable script."""
        filename = f"{name}.sh"
        file_path = self.output_dir / filename

        script_content = f"""#!/bin/bash
# Generated by performance-regression-detector
# Date: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}

set -e  # Exit on error

echo "🚀 Running {name}..."

# Template content
{template}

echo "✅ Completed successfully"
"""

        file_path.write_text(script_content)
        file_path.chmod(0o755)  # Make executable
        return file_path

def main():
    parser = argparse.ArgumentParser(description="Creates a comment on a GitHub pull request, highlighting detected performance regressions and linking to the generated report.")
    parser.add_argument('--type', choices=['markdown', 'json', 'script'], default='markdown')
    parser.add_argument('--output', '-o', default='./output', help='Output directory')
    parser.add_argument('--config', '-c', help='Configuration file')
    parser.add_argument('--title', default='performance-regression-detector Output')
    parser.add_argument('--content', help='Content to include')

    args = parser.parse_args()

    config = {'output': args.output}
    if args.config and Path(args.config).exists():
        with open(args.config) as f:
            config.update(json.load(f))

    generator = Generator(config)

    print(f"🔧 Generating {args.type} output...")

    if args.type == 'markdown':
        output_file = generator.generate_markdown(
            args.title,
            args.content or "Generated content"
        )
    elif args.type == 'json':
        output_file = generator.generate_json(
            {"title": args.title, "content": args.content}
        )
    else:  # script
        output_file = generator.generate_script(
            args.title.lower().replace(' ', '_'),
            args.content or "# Add your script content here"
        )

    print(f"✅ Generated: {output_file}")
    return 0

if __name__ == "__main__":
    import sys
    sys.exit(main())
