| import os |
| import shutil |
| from flask import Flask, send_from_directory, abort, render_template |
| import subprocess |
|
|
| |
| temp_dir = "/tmp/nebula_repo" |
|
|
| |
| def clone_and_setup_repo(): |
| |
| if os.path.exists(temp_dir): |
| shutil.rmtree(temp_dir) |
|
|
| print("Cloning the repository...") |
| result = os.system(f"git clone https://github.com/titaniumnetwork-dev/Alu.git --recursive {temp_dir}") |
| |
| if result != 0: |
| print("Error: Failed to clone the repository.") |
| return |
|
|
| |
| os.chdir(temp_dir) |
| os.system("sed -i 's/^PORT=3000$/PORT=7860/' .env.defaults") |
| os.system("npm i") |
| os.system("cp .env.example .env") |
| os.system("npm i -g pnpm") |
| os.system("pnpm i") |
| os.system("npm run build") |
| os.system("npm start") |
| os.system("npm restart") |
|
|
| |
| index_html_path = os.path.join(temp_dir, 'index.html') |
| if os.path.exists(index_html_path): |
| if os.path.exists('index.html'): |
| os.remove('index.html') |
| shutil.move(index_html_path, '.') |
|
|
| |
| clone_and_setup_repo() |
|
|
| |
| app = Flask(__name__, template_folder=os.path.join(temp_dir, 'views')) |
|
|
| |
| @app.route('/') |
| def index(): |
| |
| index_html_path = os.path.join(temp_dir, 'views', 'index.html') |
| if not os.path.exists(index_html_path): |
| print("index 404") |
| return abort(404, description="index.html not found.") |
|
|
| |
| return render_template('index.html') |
|
|
| |
| @app.route('/<path:filename>') |
| def static_files(filename): |
| return send_from_directory(os.path.join(temp_dir, 'views'), filename) |
|
|
| |
| @app.route('/check_main_js') |
| def check_main_js(): |
| if os.path.exists(os.path.join(temp_dir, 'static', 'main.js')): |
| return "main.js exists." |
| else: |
| return "main.js does not exist." |
|
|
| if __name__ == '__main__': |
| |
| app.run(host='0.0.0.0', port=7860) |