#!/usr/bin/env python3
"""
OpenSCAD to JSON Converter
Converts OpenSCAD files to simple key/content JSON format
"""

import json
import sys
import os

def convert_file(input_file: str, output_file: str = None, key: str = None):
    """Convert OpenSCAD file to JSON format"""
    try:
        # Read input file
        with open(input_file, 'r') as f:
            content = f.read()
        
        # Generate key from filename if not provided
        if key is None:
            # Use filename without extension as key
            key = os.path.splitext(os.path.basename(input_file))[0]
        
        # Create JSON structure
        result = {
            "key": key,
            "content": content
        }
        
        # Convert to JSON
        json_output = json.dumps(result, indent=2)
        
        # Write to output file or print
        if output_file:
            with open(output_file, 'w') as f:
                f.write(json_output)
            print(f"✓ Converted successfully!")
            print(f"  Input:  {input_file}")
            print(f"  Output: {output_file}")
            print(f"  Key:    {key}")
        else:
            print(json_output)
        
        return result
        
    except FileNotFoundError:
        print(f"Error: File '{input_file}' not found")
        sys.exit(1)
    except Exception as e:
        print(f"Error: {e}")
        sys.exit(1)

def main():
    if len(sys.argv) < 2:
        print("Usage Examples:")
        print(" mkjson <input_file>")
        print(" mkjson <input_file> <output_file>.json")
        print(" mkjson <input_file> <output_file>.json key")
        print("\nIf key is not provided, filename will be used as key")
        sys.exit(1)
    
    input_file = sys.argv[1]
    output_file = sys.argv[2] if len(sys.argv) > 2 else None
    key = sys.argv[3] if len(sys.argv) > 3 else None
    
    convert_file(input_file, output_file, key)

if __name__ == "__main__":
    main()
