modified: app.py

This commit is contained in:
SimolZimol
2025-07-09 00:06:22 +02:00
parent 09dae4ac9e
commit 2058c30f17

30
app.py
View File

@@ -116,7 +116,7 @@ class ProjectManager:
parts = path.strip('/').split('/')
return parts[-1] if parts else 'unknown'
def clone_project(self, project_url, project_name):
def clone_project(self, project_url, project_name, save_version=True, installation_method='clone'):
"""Klone Projekt aus Git-Repository"""
project_path = os.path.join(PROJECTS_DIR, project_name)
@@ -133,12 +133,13 @@ class ProjectManager:
if result.returncode == 0:
print(f"✓ Git Clone erfolgreich für {project_name}")
# Nach erfolgreichem Klonen die Version speichern
try:
self.save_project_version(project_name, project_url)
print(f"✓ Version für {project_name} gespeichert")
except Exception as e:
print(f"⚠ Warnung: Konnte Version für {project_name} nicht speichern: {e}")
# Nach erfolgreichem Klonen die Version speichern (nur wenn gewünscht)
if save_version:
try:
self.save_project_version(project_name, project_url, installation_method=installation_method)
print(f"✓ Version für {project_name} mit Methode '{installation_method}' gespeichert")
except Exception as e:
print(f"⚠ Warnung: Konnte Version für {project_name} nicht speichern: {e}")
return True, f"Projekt {project_name} erfolgreich geklont und konfiguriert"
else:
@@ -1338,7 +1339,7 @@ def install_project():
else:
# Repository klonen und Dockerfile bauen
print(f"🐳 Dockerfile-Installation für {project_name} von {project_url}")
success, message = project_manager.clone_project(project_url, project_name)
success, message = project_manager.clone_project(project_url, project_name, save_version=False)
if success:
# Versuche Docker-Image aus Dockerfile zu bauen
@@ -1369,7 +1370,7 @@ def install_project():
print(f"🐳 Dockerfile-Installation für {project_name} von {project_url}")
# Erst klonen, dann Docker-Image bauen
success, message = project_manager.clone_project(project_url, project_name)
success, message = project_manager.clone_project(project_url, project_name, save_version=False)
if success:
# Versuche Docker-Image aus Dockerfile zu bauen
@@ -1396,9 +1397,16 @@ def install_project():
else:
# Standard: Git Clone
success, message = project_manager.clone_project(project_url, project_name)
success, message = project_manager.clone_project(project_url, project_name, save_version=False)
if success:
# Nach erfolgreichem Klonen die Version mit der richtigen Methode speichern
try:
project_manager.save_project_version(project_name, project_url, installation_method=installation_method)
print(f"✓ Version für {project_name} mit Methode '{installation_method}' gespeichert")
except Exception as e:
print(f"⚠ Warnung: Konnte Version für {project_name} nicht speichern: {e}")
# Versuche automatisch zu bauen
build_success, build_message = project_manager.build_project(project_name)
if build_success:
@@ -1406,7 +1414,7 @@ def install_project():
else:
message += f" (Build fehlgeschlagen: {build_message})"
return jsonify({'success': success, 'message': message, 'method': 'clone'})
return jsonify({'success': success, 'message': message, 'method': installation_method})
@app.route('/build_project/<project_name>')
def build_project(project_name):