#!/usr/bin/env python3 """ compliance-report-generator - Generator Script Script to automate the generation of compliance reports based on specified standards and configurations. 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 compliance-report-generator Date: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')} ## Overview {content} ## Configuration ```json {json.dumps(self.config, indent=2)} ``` ## Category security ## Plugin compliance-report-generator """ 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": "compliance-report-generator", "timestamp": datetime.now().isoformat(), "category": "security", "plugin": "compliance-report-generator", "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 compliance-report-generator # 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="Script to automate the generation of compliance reports based on specified standards and configurations.") 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='compliance-report-generator 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())