File size: 2,464 Bytes
5e0fb22 c66f7d7 9ad7c81 5e0fb22 d893df4 5e0fb22 8213677 f360902 5e0fb22 8213677 bba5be7 5e0fb22 9ad7c81 5e0fb22 9ad7c81 5e0fb22 9ad7c81 5e0fb22 9ad7c81 5e0fb22 9ad7c81 c66f7d7 5e0fb22 a299c89 5e0fb22 8213677 9ad7c81 8213677 5e0fb22 c66f7d7 |
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 73 |
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/izum00/Alu.git --recursive {temp_dir}")
if result != 0:
print("Error: Failed to clone the repository.")
return
# クローンしたディレクトリに移動してセットアップ
os.chdir(temp_dir)
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をカレントディレクトリに移動
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()
# Flaskアプリケーションの設定
app = Flask(__name__, template_folder=os.path.join(temp_dir, 'views'))
# ルートでindex.htmlを表示
@app.route('/')
def index():
# index.htmlがリポジトリ内のviewsディレクトリに存在しない場合は404エラー
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.")
# Flaskのテンプレートエンジンを使ってindex.htmlをレンダリング
return render_template('index.html')
# 静的ファイルを提供するためのルート
@app.route('/<path:filename>')
def static_files(filename):
return send_from_directory(os.path.join(temp_dir, 'views'), filename)
# main.jsの存在を確認するエンドポイント
@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__':
# port 7860でFlaskアプリを起動
app.run(host='0.0.0.0', port=7860)
|