diff --git a/legacy/pincMails/README.md b/legacy/pincMails/README.md index 697b7ef..01f7d3d 100644 --- a/legacy/pincMails/README.md +++ b/legacy/pincMails/README.md @@ -1,4 +1,4 @@ -# mail.sh – Remote Datei-Downloader für PINC-Mails +# mail.sh – Remote Datei-Downloader für E-Mail-Dateien **Wichtig:** Bevor du das Skript verwendest, führe folgende Schritte aus: @@ -19,19 +19,33 @@ Bevor du das Skript verwendest, führe folgende Schritte aus: ## Beschreibung -Dieses Skript lädt Dateien, die einem bestimmten Muster entsprechen, von einem Remote-Server herunter. Es sucht in allen Subdirectories unter `/Apps/easyname/run/pinc*/` nach Dateien, die mit der angegebenen Kundennummer beginnen. +Dieses Skript lädt E-Mail-Dateien (.eml), die einem bestimmten Muster entsprechen, von einem Remote-Server herunter. Es bietet ein interaktives Menü zur Auswahl des Projekts (pinc oder php-es-info) und sucht dann in allen Subdirectories unter `/Apps/easyname/run/*/` nach Dateien, die mit der angegebenen Kundennummer beginnen. ## Nutzung ```bash -./mail.sh +./mail.sh ``` +Das Skript führt Sie interaktiv durch folgende Schritte: + +1. **Kundennummer eingeben:** Das Skript fragt nach der Kundennummer, die nicht leer sein darf. +2. **Projekt auswählen:** Wählen Sie zwischen: + - `1` für **pinc** + - `2` für **php-es-info** + **Beispiel:** ```bash -./mail.sh 123 +./mail.sh +Bitte geben Sie eine Kundennummer ein: +Kundennummer: 123 +Bitte wählen Sie ein Projekt: +1) pinc +2) php-es-info +Ihre Auswahl (1 oder 2): 1 ``` -Das Skript sucht dann nach allen Dateien, die mit `123-` beginnen, und lädt sie in ein lokales Verzeichnis `./123/` herunter. + +Das Skript sucht dann nach allen `.eml`-Dateien, die mit `123` beginnen, und lädt sie in ein lokales Verzeichnis `./123/` herunter. ## Voraussetzungen @@ -41,10 +55,11 @@ Das Skript sucht dann nach allen Dateien, die mit `123-` beginnen, und lädt sie ## Ablauf -1. Das Skript prüft, ob eine Nummer als Argument übergeben wurde. -2. Es verbindet sich per SSH mit dem Server und sucht in allen passenden Subdirectories nach Dateien, die mit `-` beginnen. -3. Gefundene Dateien werden in ein lokales Verzeichnis mit dem Namen der Nummer heruntergeladen (z.B. `./123/`). -4. Das lokale Verzeichnis wird automatisch erstellt, falls es noch nicht existiert. +1. Das Skript fragt interaktiv nach der Kundennummer (darf nicht leer sein). +2. Das Skript zeigt ein Menü zur Auswahl des Projekts (pinc oder php-es-info). +3. Es verbindet sich per SSH mit dem Server und sucht in allen passenden Subdirectories unter `/Apps/easyname/run/*/` nach `.eml`-Dateien, die mit der eingegebenen Kundennummer beginnen. +4. Gefundene Dateien werden in ein lokales Verzeichnis mit dem Namen der Kundennummer heruntergeladen (z.B. `./123/`). +5. Das lokale Verzeichnis wird automatisch erstellt, falls es noch nicht existiert. ## Fehlerbehandlung diff --git a/legacy/pincMails/mail.sh b/legacy/pincMails/mail.sh index 7ceaeb3..bf209f1 100644 --- a/legacy/pincMails/mail.sh +++ b/legacy/pincMails/mail.sh @@ -1,26 +1,55 @@ #!/bin/bash -# Überprüfen, ob ein Parameter übergeben wurde -if [ -z "$1" ]; then - echo "Bitte geben Sie eine Nummer als Argument an. Beispiel: $0 123" - exit 1 -fi +# Kundennummer eingeben +while true; do + echo "Bitte geben Sie eine Kundennummer ein:" + read -p "Kundennummer: " customerNumber + if [ -z "$customerNumber" ]; then + echo "Kundennummer darf nicht leer sein." + echo "" + else + break + fi +done -# Definieren Sie die Verbindungsdetails +# Server und LUSER definieren server="appdb02.in.easyname.com" LUSER="${LUSER:?Bitte LUSER setzen!}" # Setzen Sie hier Ihren Benutzernamen ein, wenn LUSER nicht als Umgebungsvariable gesetzt ist +# Menu zur Auswahl des Remote-Directories +while true; do + echo "Bitte wählen Sie ein Projekt:" + echo "1) pinc" + echo "2) php-es-info" + read -p "Ihre Auswahl (1 oder 2): " choice + + case $choice in + 1) + remoteDir="pinc" + break + ;; + 2) + remoteDir="php-es-info" + break + ;; + *) + echo "Ungültige Auswahl. Bitte wählen Sie 1 oder 2." + echo "" + ;; + esac +done + # Remote-Directory überprüfen und Subdirectories auflisten, unter Verwendung von bash -remoteDirectories=$(ssh "$LUSER@$server" "bash -c 'ls -d /Apps/easyname/run/pinc*/*/'") +remoteDirectories=$(ssh "$LUSER@$server" "bash -c 'ls -d /Apps/easyname/run/${remoteDir}*/*/'") # Wenn keine Verzeichnisse gefunden wurden, Skript beenden if [ -z "$remoteDirectories" ]; then - echo "Keine Subdirectories in /Apps/easyname/run/pinc/ gefunden." + echo "Keine Subdirectories in /Apps/easyname/run/${remoteDir}/ gefunden." exit 1 fi -localSavePath="$PWD/$1" # Setzt den lokalen Speicherpfad relativ zum aktuellen Verzeichnis -filePattern="$1-*" +localSavePath="$PWD/$customerNumber" # Setzt den lokalen Speicherpfad relativ zum aktuellen Verzeichnis +filePattern="$customerNumber*.eml" # Schleife über die gefundenen Verzeichnisse und in jedem Verzeichnis nach Dateien suchen fileList=""