v0.3.0: Pfeil-/Tab-Navigation gefixt, install/uninstall-Skripte

- FileTable(DataTable): links/rechts fuer Datei-Manager-Navigation umgebunden
  (links = eine Ebene hoch, rechts = Ordner oeffnen); zuvor verschluckte das
  DataTable-Widget die Tasten
- _selected(): liefert jetzt die Klartext-Zeichenkette statt rich.Text-Objekt
  (behob AttributeError beim Oeffnen/Enter)
- action_focus_next(): Tab wechselt zuverlaessig zwischen lokalem und
  entferntem Paneel (statt unzuverlaessigem focus_next)
- install.sh / uninstall.sh: systemweite Installation (PEP-668-konform via
  /opt/ftptui/venv + /usr/local/bin/ftptui)
This commit is contained in:
x3
2026-08-31 15:46:30 +00:00
parent ed0a943d21
commit 7a1bf948f1
6 changed files with 237 additions and 13 deletions
Executable
+61
View File
@@ -0,0 +1,61 @@
#!/usr/bin/env bash
#
# ftptui Deinstallations-Skript (systemweit)
#
# Entfernt die systemweite Installation (venv unter /opt/ftptui und den
# Einstiegspunkt /usr/local/bin/ftptui).
#
# Verwendung:
# ./uninstall.sh # entfernt das Paket (Nutzdaten bleiben)
# ./uninstall.sh --purge # entfernt zusätzlich die Konfigurationsdateien
#
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
APP_NAME="ftptui"
VENV_DIR="/opt/ftptui/venv"
BIN_LINK="/usr/local/bin/$APP_NAME"
PURGE=0
for arg in "$@"; do
case "$arg" in
--purge|-p) PURGE=1 ;;
-h|--help) echo "Verwendung: $0 [--purge]"; exit 0 ;;
*) echo "Unbekanntes Argument: $arg"; exit 1 ;;
esac
done
run_sudo() {
if [ "$(id -u)" -eq 0 ]; then
"$@"
else
sudo "$@"
fi
}
echo "==> ftptui Deinstallations-Skript"
if [ -x "$BIN_LINK" ] || [ -d "$VENV_DIR" ]; then
echo "==> Entferne systemweite Installation ..."
run_sudo rm -f "$BIN_LINK"
run_sudo rm -rf /opt/ftptui
echo "==> Entfernt: $BIN_LINK und $VENV_DIR"
else
echo "==> Keine systemweite Installation gefunden (kein $BIN_LINK / $VENV_DIR)."
fi
CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/ftptui"
if [ "$PURGE" -eq 1 ]; then
if [ -e "$CONFIG_DIR" ]; then
rm -rf "$CONFIG_DIR"
echo "==> Konfigurationsverzeichnis entfernt: $CONFIG_DIR"
else
echo "==> Kein Konfigurationsverzeichnis gefunden."
fi
else
echo "==> Nutzdaten (Verbindungsprofile) bleiben erhalten: $CONFIG_DIR"
echo " (mit --purge werden auch diese entfernt)"
fi
echo
echo "Deinstallation abgeschlossen."