From d981ef7ad3c014786c1e31ff4906ac850147ec31 Mon Sep 17 00:00:00 2001 From: Gandalf Date: Sat, 13 Mar 2021 20:45:17 +0100 Subject: [PATCH] Edit address --- Adressen/address.sh | 38 +++++++++++++++++++++++++++++++++++++- README.md | 3 ++- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/Adressen/address.sh b/Adressen/address.sh index b2904c6..c0f2c96 100755 --- a/Adressen/address.sh +++ b/Adressen/address.sh @@ -79,6 +79,43 @@ then exit 0 fi +if [ $F = "-e" ] +then + NULL=$(grep "^$H" Adressen.csv) + ISH=$? #exit code. Der if-Block wird ausgeführt, wenn nichts gefunden wurde. (ISH steht für is handle) + if [ $ISH -eq 1 ] + then + read -p "Dieses Handle ist unbekannt. Neuen Datensatz anlegen? (j/n)" J + if [ $J = "j"] + then + eval $0 -g $H + exit 0 + else + exit 1 + fi + fi + IFS=',' read -ra HEADER <<< $(grep "^handle" Adressen.csv) #read field keys + IFS=',' read -ra VALUES <<< $(grep "^$H" Adressen.csv) #read old values + # for loop startet bei 1, um die handle Spalte nicht zu editieren: + for (( i=1; i<${#HEADER[@]}; i++ )); + do + read -rp "${HEADER[$i]} (${VALUES[$i]}): " NEWVAL +# echo "${HEADER[$i]} (${VALUES[$i]}): " + VALUES[$i]=${NEWVAL:-${VALUES[$i]}} + if [ ${HEADER[$i]} = "parent" ] + then + PARENT=${VALUES[$i]} + NULL=$(grep "^$PARENT" Adressen.csv) # findet alles, wenn $PARENT leer ist. + ISP=$? #exit code. Der if-Block wird ausgeführt, wenn nichts gefunden wurde. + if [ $ISP -eq 1 ] + then + eval $0 -g $PARENT + fi + fi + done + echo ${VALUES[*]} +fi + if [ $F = "-g" ] then NULL=$(grep "^$H" Adressen.csv) @@ -107,4 +144,3 @@ then eval $0 -g $PARENT fi fi - diff --git a/README.md b/README.md index 652fec5..35b6e93 100644 --- a/README.md +++ b/README.md @@ -86,8 +86,9 @@ Verfügbare Flags: * `-n`: Name * `-e`: Editieren * `-c`: Erzeugen eines Eintrags +* `-l`: Auflisten aller `handle`s und Namen. Dies ist die einzige Option, die kein angegebenes `` verlangt. -Wir `` nicht angegeben, soll nach der aktuell zuständigen Stelle in einer `DECKBLATT.csv` gesucht werden. +Wird `` nicht angegeben, soll nach der aktuell zuständigen Stelle in einer `DECKBLATT.csv` gesucht werden. Das ist aber Zukunftsmusik, die Angabe von `` wird, außer bei `-l`, immer verlangt. #### `init.sh` Führt durch die Anlage eines Deckblattes ~~und stellt sicher, dass die korrekte Gerichtshierarchie eingetragen ist~~. #### `rechtsmittel.sh`