refactor: [30388f42] Finale Komprimierung des Root-Verzeichnisses
- Konsolidiert Dockerfiles in . - Verschiebt Datenbank- und Log-Dateien in . - Organisiert Konfigurations- und Modelldateien in . - Fasst Shell-Skripte in zusammen. - Verschiebt nach . - Verschiebt nach . - Das Verzeichnis wurde in verschoben. - Behält Kern-Dateien (, , , , etc.) im Root-Verzeichnis, um die Lauffähigkeit zu gewährleisten.
This commit is contained in:
5
scripts_root/commit.sh
Normal file
5
scripts_root/commit.sh
Normal file
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
git status
|
||||
git add .
|
||||
git commit -m "fix(competitor-analysis): final migration fixes and documentation updates"
|
||||
git push origin main
|
||||
60
scripts_root/start-gemini-dev.sh
Normal file
60
scripts_root/start-gemini-dev.sh
Normal file
@@ -0,0 +1,60 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Definiere den Namen für das Docker-Image und den Container
|
||||
IMAGE_NAME="gemini-dev-env"
|
||||
CONTAINER_NAME="gemini-dev-session"
|
||||
|
||||
# Sicherstellen, dass der Config-Ordner existiert
|
||||
mkdir -p .gemini-config
|
||||
|
||||
# Prüfen, ob das Docker-Image existiert
|
||||
if ! docker image inspect "$IMAGE_NAME" &> /dev/null;
|
||||
then
|
||||
echo "Docker-Image '$IMAGE_NAME' nicht gefunden. Baue es jetzt aus 'gemini.Dockerfile'..."
|
||||
docker build -t "$IMAGE_NAME" -f gemini.Dockerfile .
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "FEHLER: Docker-Image konnte nicht gebaut werden."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Räume alte '$CONTAIN_NAME' und temporäre Container auf, falls vorhanden..."
|
||||
docker rm -f "$CONTAINER_NAME" > /dev/null 2>&1
|
||||
docker rm -f "${CONTAINER_NAME}-temp" > /dev/null 2>&1
|
||||
|
||||
echo "Starte eine neue, interaktive Gemini-Session..."
|
||||
|
||||
# Erstelle eine temporäre Datei, um die Ausgabe der dev_session zu speichern
|
||||
TEMP_OUTPUT_FILE=$(mktemp)
|
||||
|
||||
# Führe dev_session.py interaktiv aus (-it). Die Ausgabe wird via `tee`
|
||||
# gleichzeitig im Terminal angezeigt UND in die temporäre Datei geschrieben.
|
||||
docker run -it --rm \
|
||||
-v "$(pwd):/app" \
|
||||
-v "$(pwd)/.gemini-config:/root/.config" \
|
||||
-w /app \
|
||||
--name "${CONTAINER_NAME}-temp" \
|
||||
"$IMAGE_NAME" \
|
||||
python3 dev_session.py 2>&1 | tee "$TEMP_OUTPUT_FILE"
|
||||
|
||||
# Extrahiere den CLI-Kontext aus der temporären Datei
|
||||
CLI_CONTEXT=$(sed -n '/---GEMINI_CLI_CONTEXT_START---/,/---GEMINI_CLI_CONTEXT_END---/{//!p}' "$TEMP_OUTPUT_FILE")
|
||||
|
||||
# Lösche die temporäre Datei
|
||||
rm "$TEMP_OUTPUT_FILE"
|
||||
|
||||
# Die Ausgabe wurde bereits angezeigt, wir können direkt die CLI starten.
|
||||
echo "--- Initialisiere Gemini CLI mit dem ausgewählten Kontext... ---"
|
||||
|
||||
# Starte die Gemini CLI mit dem extrahierten Kontext
|
||||
# Die --initial-prompt Option sorgt dafür, dass der Kontext als erste Eingabe dient
|
||||
docker run -it --rm \
|
||||
-v "$(pwd):/app" \
|
||||
-v "$(pwd)/.gemini-config:/root/.config" \
|
||||
-w /app \
|
||||
--name "$CONTAINER_NAME" \
|
||||
"$IMAGE_NAME" \
|
||||
gemini --prompt-interactive "$CLI_CONTEXT"
|
||||
|
||||
# Nach Beendigung der Session (z.B. durch Strg+C) wird aufgeräumt
|
||||
echo "Session beendet."
|
||||
82
scripts_root/start-gemini.sh
Normal file
82
scripts_root/start-gemini.sh
Normal file
@@ -0,0 +1,82 @@
|
||||
#!/bin/bash
|
||||
|
||||
# --- Konfiguration ---
|
||||
IMAGE_NAME="gemini-dev-env"
|
||||
CONTAINER_NAME="gemini-session"
|
||||
|
||||
# --- Aufräumen ---
|
||||
# Sicherstellen, dass der Config-Ordner existiert
|
||||
mkdir -p .gemini-config
|
||||
|
||||
# Prüfen, ob das Docker-Image existiert und es bei Bedarf bauen
|
||||
if ! docker image inspect "$IMAGE_NAME" &> /dev/null;
|
||||
then
|
||||
echo "Docker-Image '$IMAGE_NAME' nicht gefunden. Baue es jetzt aus 'gemini.Dockerfile'..."
|
||||
docker build -t "$IMAGE_NAME" -f gemini.Dockerfile .
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "FEHLER: Docker-Image konnte nicht gebaut werden."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Räume alte Docker-Container auf, falls vorhanden..."
|
||||
docker rm -f "$CONTAINER_NAME" > /dev/null 2>&1
|
||||
docker rm -f "${CONTAINER_NAME}-temp" > /dev/null 2>&1
|
||||
|
||||
# --- Interaktives Setup via dev_session.py ---
|
||||
echo "Starte interaktive Entwicklungs-Session-Konfiguration..."
|
||||
|
||||
# Erstelle eine temporäre Datei, um die Ausgabe von dev_session.py aufzufangen
|
||||
TEMP_FILE=$(mktemp)
|
||||
|
||||
# Führe dev_session.py in einem temporären, interaktiven Container aus.
|
||||
# Die Ausgabe (stdout & stderr) wird gleichzeitig im Terminal angezeigt und in die temporäre Datei geschrieben.
|
||||
docker run -it --rm \
|
||||
-v "$(pwd):/app" \
|
||||
-v "$(pwd)/.gemini-config:/root/.config" \
|
||||
-w /app \
|
||||
--name "${CONTAINER_NAME}-temp" \
|
||||
"$IMAGE_NAME" python3 dev_session.py 2>&1 | tee "$TEMP_FILE"
|
||||
|
||||
# Überprüfe, ob der Docker-Befehl erfolgreich war (exit code 0)
|
||||
if [ ${PIPESTATUS[0]} -ne 0 ]; then
|
||||
echo "------------------------------------------------------------------"
|
||||
echo "❌ Fehler: Der Konfigurationsprozess wurde abgebrochen oder ist fehlgeschlagen."
|
||||
echo "Die Gemini CLI wird nicht gestartet."
|
||||
echo "------------------------------------------------------------------"
|
||||
rm "$TEMP_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Extrahiere den reinen CLI-Kontext aus der temporären Datei
|
||||
CLI_CONTEXT=$(sed -n '/---GEMINI_CLI_CONTEXT_START---/,/---GEMINI_CLI_CONTEXT_END---/{//!p}' "$TEMP_FILE")
|
||||
|
||||
# Lösche die temporäre Datei
|
||||
rm "$TEMP_FILE"
|
||||
|
||||
# Überprüfe, ob der Kontext extrahiert werden konnte
|
||||
if [ -z "$CLI_CONTEXT" ]; then
|
||||
echo "------------------------------------------------------------------"
|
||||
echo "❌ Fehler: Es konnte kein gültiger Kontext für die Gemini CLI generiert werden."
|
||||
echo "Stelle sicher, dass dev_session.py die Kontext-Marker korrekt ausgibt."
|
||||
echo "Die Gemini CLI wird nicht gestartet."
|
||||
echo "------------------------------------------------------------------"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# --- Start der Haupt-Gemini-Session ---
|
||||
echo "Starte eine neue, interaktive Gemini-Session mit dem generierten Kontext..."
|
||||
|
||||
# Füge den Systemhinweis zum Container-Namen am Anfang des Kontextes hinzu
|
||||
FULL_CONTEXT="**Wichtiger Systemhinweis:** Das aktuelle Projekt läuft im Docker-Container namens '${CONTAINER_NAME}'. Alle relevanten Befehle müssen in diesem Kontext ausgeführt werden. Führe niemals Befehle wie 'docker build' oder 'docker run' aus.
|
||||
|
||||
$CLI_CONTEXT"
|
||||
|
||||
# Starte den finalen Container mit der Gemini CLI
|
||||
# --prompt-interactive übergibt den initialen Kontext
|
||||
docker run -it --rm \
|
||||
-v "$(pwd):/app" \
|
||||
-v "$(pwd)/.gemini-config:/root/.config" \
|
||||
-w /app \
|
||||
--name "$CONTAINER_NAME" \
|
||||
"$IMAGE_NAME" gemini --prompt-interactive "$FULL_CONTEXT"
|
||||
7
scripts_root/start.sh
Normal file
7
scripts_root/start.sh
Normal file
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
echo "Starte Cloudflare Tunnel mit http2 Protokoll..."
|
||||
cloudflared tunnel --protocol http2 --no-autoupdate run --token $TUNNEL_TOKEN &
|
||||
sleep 5
|
||||
echo "Starte Gunicorn Webserver auf Port 8080..."
|
||||
gunicorn --bind 0.0.0.0:8080 --workers 2 app:app
|
||||
23
scripts_root/take_screenshot.sh
Normal file
23
scripts_root/take_screenshot.sh
Normal file
@@ -0,0 +1,23 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Konfiguration
|
||||
HA_URL="http://192.168.178.131:8123"
|
||||
HA_TOKEN=$HA_ACCESS_TOKEN
|
||||
HA_ENTITY_ID="camera.solar_dashboard_screenshot" # Beispiel-Name, siehe unten
|
||||
OUTPUT_FILE="/screenshots/final_screenshot.jpg"
|
||||
|
||||
echo "Konfiguriere hass-cli..."
|
||||
hass-cli config -s $HA_URL -t $HA_TOKEN
|
||||
|
||||
echo "Fordere Home Assistant auf, einen Screenshot zu erstellen..."
|
||||
# Dieser Befehl löst den 'camera.snapshot' Dienst aus
|
||||
hass-cli service call camera.snapshot --arguments "entity_id=$HA_ENTITY_ID,filename=$OUTPUT_FILE"
|
||||
|
||||
echo "Warte 5 Sekunden, bis die Datei geschrieben wurde..."
|
||||
sleep 5
|
||||
|
||||
if [ -f "$OUTPUT_FILE" ]; then
|
||||
echo "Screenshot erfolgreich unter $OUTPUT_FILE erstellt!"
|
||||
else
|
||||
echo "Fehler: Screenshot wurde nicht erstellt. Bitte Home Assistant Logs prüfen."
|
||||
fi
|
||||
Reference in New Issue
Block a user