File size: 2,069 Bytes
e00e744
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/usr/bin/env python3
"""
Startup script for the SQL Lineage Analysis Demo Server
"""

import os
import sys
import gradio as gr
from pathlib import Path



def main():
    """Start the demo server with configuration"""

    # Run deployment setup if needed
    if os.path.exists("deploy_setup.py"):
        print("🔧 Running deployment setup...")
        try:
            import deploy_setup
            success = deploy_setup.install_local_package()
            if success:
                print("✅ Package installation completed successfully")
            else:
                print("❌ Package installation failed")
        except Exception as e:
            print(f"⚠️ Deployment setup failed: {e}")
    else:
        print("⚠️ deploy_setup.py not found, skipping package installation")

    # Configuration
    host = os.getenv("DEMO_HOST", "0.0.0.0")
    port = int(os.getenv("DEMO_PORT", "7860"))
    share = os.getenv("DEMO_SHARE", "false").lower() == "true"
    inbrowser = os.getenv("DEMO_INBROWSER", "true").lower() == "true"
    debug = os.getenv("DEMO_DEBUG", "false").lower() == "true"
    
    print(f"Starting SQL Lineage Analysis Demo Server...")
    print(f"Host: {host}")
    print(f"Port: {port}")
    print(f"Share: {share}")
    print(f"Open in browser: {inbrowser}")
    print(f"Debug mode: {debug}")
    print(f"Demo Interface: http://{host}:{port}")
    print()
    
    try:
       
        # Import and run the demo server
        from demo_server import SQLLineageFrontend
        
        frontend = SQLLineageFrontend()
        ui = frontend.create_ui()
        
        # Launch the Gradio interface
        ui.launch(
            server_name=host,
            server_port=port,
            share=share,
            inbrowser=inbrowser,
            debug=debug,
            show_error=True
        )
        
    except KeyboardInterrupt:
        print("\nShutting down demo server...")
    except Exception as e:
        print(f"Error starting demo server: {e}")
        sys.exit(1)

if __name__ == "__main__":
    main()