From 10b000feef057702c6a1b5885ed626d3632738a8 Mon Sep 17 00:00:00 2001 From: loki Date: Mon, 15 Dec 2025 14:08:59 +0100 Subject: [PATCH 1/2] Refactor mail.sh to enhance user input handling and project selection - Replaced parameter input with interactive prompts for customer number and project selection. - Updated remote directory path based on user-selected project. - Adjusted local save path and file pattern to use the customer number input. --- legacy/pincMails/mail.sh | 49 ++++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 10 deletions(-) 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="" -- 2.54.0 From 6116e9283eba817bd50c24037e844c3725e4ff76 Mon Sep 17 00:00:00 2001 From: loki Date: Mon, 15 Dec 2025 14:11:48 +0100 Subject: [PATCH 2/2] updated mail.sh README --- legacy/pincMails/README.md | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) 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 -- 2.54.0