feat: add uninstall.sh with dry-run, --help, full cleanup; update install.sh + COMMUNITY_POST.md
This commit is contained in:
+40
-12
@@ -37,24 +37,52 @@ Statt über ein separates Gateway-Binary zu kommunizieren, spricht Hermes Agent
|
|||||||
- Laufender Rocket.Chat-Server (v5+ empfohlen)
|
- Laufender Rocket.Chat-Server (v5+ empfohlen)
|
||||||
- Bot-Benutzer auf Rocket.Chat mit Login-Daten
|
- Bot-Benutzer auf Rocket.Chat mit Login-Daten
|
||||||
|
|
||||||
### 2. Plugin installieren
|
### 2. Plugin herunterladen
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# In das Hermes Agent Verzeichnis wechseln
|
git clone https://gitea.thomander.de/andreas/Hermes_rocket.chat_Plugin.git
|
||||||
cd ~/.hermes/hermes-agent
|
cd Hermes_rocket.chat_Plugin
|
||||||
|
|
||||||
# Plugin-Verzeichnis anlegen und Dateien hineinkopieren
|
|
||||||
mkdir -p plugins/platforms/rocketchat
|
|
||||||
cp plugin.yaml plugins/platforms/rocketchat/
|
|
||||||
cp __init__.py plugins/platforms/rocketchat/
|
|
||||||
cp adapter.py plugins/platforms/rocketchat/
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. Konfigurieren
|
### 3. Interaktive Installation (empfohlen)
|
||||||
|
|
||||||
**Variante A — Umgebungsvariablen:**
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
./install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Das Script führt dich durch alle Schritte, fragt deine Zugangsdaten ab, testet die Verbindung und schreibt die Konfiguration. Fertig in unter 2 Minuten.
|
||||||
|
|
||||||
|
**Nicht sicher?** Probiere erst die Simulation:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./install.sh --dry-run
|
||||||
|
```
|
||||||
|
|
||||||
|
Zeigt alles an, ändert nichts.
|
||||||
|
|
||||||
|
**Hilfe anzeigen:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./install.sh --help
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Manuelles Setup (für Experten)
|
||||||
|
|
||||||
|
Wer lieber per Hand konfigurieren möchte:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir -p ~/.hermes/hermes-agent/plugins/platforms/rocketchat
|
||||||
|
cp plugin.yaml __init__.py adapter.py \
|
||||||
|
~/.hermes/hermes-agent/plugins/platforms/rocketchat/
|
||||||
|
```
|
||||||
|
|
||||||
|
Dann `~/.hermes/.env` oder `config.yaml` bearbeiten.
|
||||||
|
|
||||||
|
### 5. Konfigurieren
|
||||||
|
|
||||||
|
Falls du manuell konfigurierst, hier die zwei Varianten:
|
||||||
|
|
||||||
|
**Variante A — Umgebungsvariablen:**
|
||||||
export ROCKETCHAT_BASE_URL="https://rocketchat.example.com"
|
export ROCKETCHAT_BASE_URL="https://rocketchat.example.com"
|
||||||
export ROCKETCHAT_USER="bernd"
|
export ROCKETCHAT_USER="bernd"
|
||||||
export ROCKETCHAT_PASSWORD="dein-passwort"
|
export ROCKETCHAT_PASSWORD="dein-passwort"
|
||||||
|
|||||||
+26
@@ -6,9 +6,35 @@
|
|||||||
# Nutzung:
|
# Nutzung:
|
||||||
# ./install.sh → Normale Installation
|
# ./install.sh → Normale Installation
|
||||||
# ./install.sh --dry-run → Simulation (zeigt alles an, ändert nichts)
|
# ./install.sh --dry-run → Simulation (zeigt alles an, ändert nichts)
|
||||||
|
# ./install.sh --help → Diese Hilfe anzeigen
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
|
# ── Hilfe ──
|
||||||
|
if [[ "${1:-}" == "--help" || "${1:-}" == "-h" ]]; then
|
||||||
|
cat <<'EOF'
|
||||||
|
Rocket.Chat Plugin — Interaktives Setup für Hermes Agent
|
||||||
|
|
||||||
|
Nutzung:
|
||||||
|
./install.sh Interaktive Installation mit Verbindungstest
|
||||||
|
./install.sh --dry-run Vorschau: zeigt alle Schritte an, ändert NICHTS
|
||||||
|
./install.sh --help Diese Hilfe anzeigen
|
||||||
|
|
||||||
|
Was install.sh macht:
|
||||||
|
1. Prüft Voraussetzungen (curl, git, python3)
|
||||||
|
2. Legt das Plugin-Verzeichnis an
|
||||||
|
3. Kopiert plugin.yaml, __init__.py, adapter.py
|
||||||
|
4. Fragt Rocket.Chat-Zugangsdaten interaktiv ab
|
||||||
|
5. Testet die Verbindung und liest UserID/RoomID aus
|
||||||
|
6. Schreibt die Konfiguration in ~/.hermes/.env
|
||||||
|
7. Bietet Neustart von Hermes Gateway an
|
||||||
|
|
||||||
|
Deinstallation: ./uninstall.sh
|
||||||
|
|
||||||
|
EOF
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
# ── Dry-Run Modus ──
|
# ── Dry-Run Modus ──
|
||||||
DRY_RUN=false
|
DRY_RUN=false
|
||||||
if [[ "${1:-}" == "--dry-run" ]]; then
|
if [[ "${1:-}" == "--dry-run" ]]; then
|
||||||
|
|||||||
Executable
+121
@@ -0,0 +1,121 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# uninstall.sh
|
||||||
|
# Rocket.Chat Plugin — Saubere Deinstallation von Hermes Agent
|
||||||
|
#
|
||||||
|
# Nutzung:
|
||||||
|
# ./uninstall.sh → Deinstallieren
|
||||||
|
# ./uninstall.sh --dry-run → Simulation (zeigt an, ändert nichts)
|
||||||
|
|
||||||
|
set -uo pipefail
|
||||||
|
|
||||||
|
DRY_RUN=false
|
||||||
|
if [[ "${1:-}" == "--dry-run" ]]; then
|
||||||
|
DRY_RUN=true
|
||||||
|
echo -e "\n🔍 DRY-RUN — Es wird NICHTS entfernt. Nur Vorschau.\n"
|
||||||
|
fi
|
||||||
|
|
||||||
|
PLUGIN_NAME="rocketchat"
|
||||||
|
HERMES_HOME="${HERMES_HOME:-$HOME/.hermes}"
|
||||||
|
PLUGIN_DEST="$HERMES_HOME/hermes-agent/plugins/platforms/$PLUGIN_NAME"
|
||||||
|
ENV_FILE="$HERMES_HOME/.env"
|
||||||
|
|
||||||
|
ECHO_OK() { echo -e " ✅ $1"; }
|
||||||
|
ECHO_ERR() { echo -e " ❌ $1"; }
|
||||||
|
ECHO_INFO() { echo -e " ℹ️ $1"; }
|
||||||
|
ECHO_STEP() { echo -e "\n🔵 $1"; }
|
||||||
|
ECHO_WARN() { echo -e " ⚠️ $1"; }
|
||||||
|
ECHO_DRY() { echo -e " 📝 [DRY-RUN] $1"; }
|
||||||
|
|
||||||
|
run_or_simulate() {
|
||||||
|
local desc="$1"
|
||||||
|
shift
|
||||||
|
if $DRY_RUN; then
|
||||||
|
ECHO_DRY "$desc"
|
||||||
|
echo " → würde ausführen: $*"
|
||||||
|
else
|
||||||
|
"$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# ── Schritt 1: Hermes Gateway stoppen ──
|
||||||
|
ECHO_STEP "1/4 Hermes Gateway stoppen"
|
||||||
|
|
||||||
|
if ! $DRY_RUN; then
|
||||||
|
if command -v hermes &>/dev/null; then
|
||||||
|
hermes gateway stop 2>/dev/null || true
|
||||||
|
ECHO_OK "Gateway gestoppt"
|
||||||
|
else
|
||||||
|
ECHO_WARN "'hermes' nicht gefunden — Gateway manuell prüfen"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
ECHO_DRY "würde 'hermes gateway stop' ausführen"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ── Schritt 2: Plugin-Dateien entfernen ──
|
||||||
|
ECHO_STEP "2/4 Plugin-Dateien entfernen"
|
||||||
|
|
||||||
|
if [[ -d "$PLUGIN_DEST" ]]; then
|
||||||
|
FILE_COUNT=$(find "$PLUGIN_DEST" -type f 2>/dev/null | wc -l)
|
||||||
|
ECHO_WARN "Gefunden: $PLUGIN_DEST ($FILE_COUNT Dateien)"
|
||||||
|
if ! $DRY_RUN; then
|
||||||
|
read -rp " Wirklich entfernen? [j/N] " ans
|
||||||
|
if [[ "$ans" =~ ^[Jj]$ ]]; then
|
||||||
|
rm -rf "$PLUGIN_DEST"
|
||||||
|
ECHO_OK "Plugin-Verzeichnis entfernt"
|
||||||
|
else
|
||||||
|
echo "Abbruch."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
ECHO_DRY "würde rm -rf $PLUGIN_DEST ausführen ($FILE_COUNT Dateien)"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
ECHO_INFO "Plugin-Verzeichnis nicht gefunden — überspringe"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ── Schritt 3: Env-Variablen bereinigen ──
|
||||||
|
ECHO_STEP "3/4 Env-Variablen bereinigen"
|
||||||
|
|
||||||
|
if [[ -f "$ENV_FILE" ]]; then
|
||||||
|
RC_COUNT=$(grep -c "^ROCKETCHAT_" "$ENV_FILE" 2>/dev/null || echo "0")
|
||||||
|
if [[ "$RC_COUNT" -gt 0 ]]; then
|
||||||
|
if ! $DRY_RUN; then
|
||||||
|
read -rp " $RC_COUNT ROCKETCHAT_-Zeilen aus ~/.hermes/.env entfernen? [j/N] " ans
|
||||||
|
if [[ "$ans" =~ ^[Jj]$ ]]; then
|
||||||
|
sed -i '/^ROCKETCHAT_/d' "$ENV_FILE"
|
||||||
|
ECHO_OK "$RC_COUNT Einträge entfernt"
|
||||||
|
else
|
||||||
|
ECHO_INFO "Env-Einträge belassen"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
ECHO_DRY "würde $RC_COUNT ROCKETCHAT_-Zeilen aus $ENV_FILE entfernen"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
ECHO_INFO "Keine ROCKETCHAT_-Einträge in .env gefunden"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
ECHO_INFO "~/.hermes/.env nicht vorhanden — überspringe"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ── Schritt 4: Config.yaml Hinweis ──
|
||||||
|
ECHO_STEP "4/4 Config.yaml prüfen"
|
||||||
|
|
||||||
|
CONFIG_FILE="$HERMES_HOME/config.yaml"
|
||||||
|
if [[ -f "$CONFIG_FILE" ]] && grep -q "rocketchat:" "$CONFIG_FILE" 2>/dev/null; then
|
||||||
|
ECHO_WARN "rocketchat:-Eintrag in config.yaml gefunden"
|
||||||
|
echo " Bitte manuell entfernen, falls gewünscht:"
|
||||||
|
echo " $ nano $CONFIG_FILE"
|
||||||
|
else
|
||||||
|
ECHO_INFO "Kein rocketchat:-Eintrag in config.yaml"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ── Fertig ──
|
||||||
|
if $DRY_RUN; then
|
||||||
|
ECHO_STEP "🔍 DRY-RUN BEENDET"
|
||||||
|
ECHO_INFO "Es wurde NICHTS entfernt."
|
||||||
|
ECHO_INFO "Starte ohne --dry-run für echte Deinstallation."
|
||||||
|
else
|
||||||
|
ECHO_STEP "✨ Deinstallation abgeschlossen"
|
||||||
|
ECHO_OK "Plugin ist entfernt"
|
||||||
|
ECHO_INFO "Zum erneuten Installieren: ./install.sh"
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user