#!/usr/bin/env python3

import subprocess
import sys
import os

def main():
    # Output proper CGI headers for JSON
    print("Content-Type: application/json")
    print()
    
    try:
        # Execute the fetch_inventory.py script
        script_path = '/opt/ngon/apps/miners/fetch_inventory.py'
        
        # Run the script and capture output with environment
        result = subprocess.run(
            [sys.executable, script_path], 
            capture_output=True, 
            text=True,
            timeout=120,
            env=dict(os.environ, PYTHONPATH='/opt/ngon/apps')
        )
        
        if result.returncode == 0:
            print('{"success": true, "message": "Inventory refreshed successfully"}')
        else:
            # Include stderr output for debugging - properly escape JSON
            import json
            stderr_output = result.stderr.strip() if result.stderr else "No error output"
            stdout_output = result.stdout.strip() if result.stdout else "No output"
            
            # Debug info about environment
            debug_info = {
                "user": os.environ.get('USER', 'unknown'),
                "home": os.environ.get('HOME', 'unknown'),
                "path": os.environ.get('PATH', 'unknown')[:100] + "...",
                "cwd": os.getcwd(),
                "script_exists": os.path.exists(script_path),
                "credentials_exists": os.path.exists('/opt/ngon/config/credentials/google_auth.json')
            }
            
            error_data = {
                "success": False,
                "error": f"Script exited with code {result.returncode}",
                "stderr": stderr_output,
                "stdout": stdout_output,
                "debug": debug_info
            }
            print(json.dumps(error_data))
            
    except subprocess.TimeoutExpired:
        print('{"success": false, "error": "Script execution timed out"}')
    except Exception as e:
        import json
        error_data = {"success": False, "error": f"Error executing script: {str(e)}"}
        print(json.dumps(error_data))

if __name__ == "__main__":
    main()