From a6baa5801382ae93f82baea1a988f3d1f29504c7 Mon Sep 17 00:00:00 2001 From: Gandalf Date: Sun, 14 Mar 2021 13:58:09 +0100 Subject: [PATCH] =?UTF-8?q?Pfadkonsistenz=20f=C3=BCr=20die=20Schnittstelle?= =?UTF-8?q?=20zu=20sipgate-cli=20(und=20sowieso)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Adressen/address.sh | 58 +++++++++++++++++++++----------------------- README.md | 7 ++++-- latex/letterhead.cls | 5 +++- 3 files changed, 36 insertions(+), 34 deletions(-) diff --git a/Adressen/address.sh b/Adressen/address.sh index c0f2c96..4fdebb5 100755 --- a/Adressen/address.sh +++ b/Adressen/address.sh @@ -6,6 +6,7 @@ F=$1 O=false LOC="" COL="" +BASEPATH=$(dirname $(realpath $0)) if [ $F = "-l" ] # -l möchte kein weiteres Argument, im Gegensatz zu allen anderen Optionen. then @@ -13,7 +14,7 @@ then while IFS="," read -r COL1 COL2 COLX do echo "$COL1: $COL2" - done < <(tail -n +2 Adressen.csv) + done < <(tail -n +2 $BASEPATH/Adressen.csv) exit 0 fi @@ -28,60 +29,55 @@ then echo "Ignoriere überschüssige Argumente" fi -if [ $F = "-n" ] -then +case $F in + "-n") COL=Name O=true -fi + ;; -if [ $F = "-a" ] -then + "-a") COL=Anrede O=true -fi + ;; -if [ $F = "-d" ] -then + "-d") COL=Adresse O=true -fi + ;; -if [ $F = "-f" ] -then + "-f") # return fax number to be used by sipgate-cli COL=FaxNr O=true -fi + ;; -if [ $F = "-t" ] -then + "-t") COL=TelNr O=true -fi + ;; -if [ $F = "-c" ] -then + "-c") COL=Closing O=true -fi + ;; -if [ $F = "-p" ] -then + "-p") COL=parent O=true -fi + ;; +esac if [ $O = true ] then - LOC=$(head -1 Adressen.csv | tr ',' '\n' | nl |grep -w "$COL" | tr -d " " | awk -F " " '{print $1}') #calculating position of requested Col - grep "$H" Adressen.csv | head -n 1 | cut -d "," -f$LOC | sed 's/"//g' + LOC=$(head -1 $BASEPATH/Adressen.csv | tr ',' '\n' | nl |grep -w "$COL" | tr -d " " | awk -F " " '{print $1}') #calculating position of requested Col + grep "$H" $BASEPATH/Adressen.csv | head -n 1 | cut -d "," -f$LOC | sed 's/"//g' #Returning requested column, making sure to return only one result (even though redundant results shouldn't be possible) exit 0 fi if [ $F = "-e" ] then - NULL=$(grep "^$H" Adressen.csv) + NULL=$(grep "^$H" $BASEPATH/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 @@ -94,8 +90,8 @@ then 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 + IFS=',' read -ra HEADER <<< $(grep "^handle" $BASEPATH/Adressen.csv) #read field keys + IFS=',' read -ra VALUES <<< $(grep "^$H" $BASEPATH/Adressen.csv) #read old values # for loop startet bei 1, um die handle Spalte nicht zu editieren: for (( i=1; i<${#HEADER[@]}; i++ )); do @@ -105,7 +101,7 @@ then if [ ${HEADER[$i]} = "parent" ] then PARENT=${VALUES[$i]} - NULL=$(grep "^$PARENT" Adressen.csv) # findet alles, wenn $PARENT leer ist. + NULL=$(grep "^$PARENT" $BASEPATH/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 @@ -118,7 +114,7 @@ fi if [ $F = "-g" ] then - NULL=$(grep "^$H" Adressen.csv) + NULL=$(grep "^$H" $BASEPATH/Adressen.csv) ISH=$? #exit code. Der if-Block wird ausgeführt, wenn etwas gefunden wurde. (ISH steht für is handle) if [ $ISH -ne 1 ] then @@ -136,8 +132,8 @@ then read -p 'Nächsthöhere Hierarchieebene (handle): ' PARENT ANREDE=${ANREDE:-"Damen und Herren"} CLOSING=${CLOSING:-"Mit der Ihnen gebührenden Hochachtung"} - echo "$H,$NAME,$ANREDE,$STREET\\\\$CITY,$FAX,$TEL,$CLOSING,$PARENT" >> Adressen.csv - NULL=$(grep "^$PARENT" Adressen.csv) # findet alles, wenn $PARENT leer ist. + echo "$H,$NAME,$ANREDE,$STREET\\\\$CITY,$FAX,$TEL,$CLOSING,$PARENT" >> $BASEPATH/Adressen.csv + NULL=$(grep "^$PARENT" $BASEPATH/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 diff --git a/README.md b/README.md index 35b6e93..2899fc0 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,9 @@ Die **automatische Adresswahl** funktioniert mit dem Kommando `\receive`: `\receive{}` : in dieser Version ist `` ein Funktionshandle `INH` aus der Datei `DECKBLATT.csv` +`\receive` +: ohne jegliche Argumente holt sich `\receive` die Adresse des aktuellen Hauptbrieffeindes aus der Datei `DECKBLATT.csv` (stand=="+") + ### Templates `\einspruch{}` : `` sollte `Strafbefehl` oder `Bußgeldbescheid` sein. Aktenzeichen und Briefdatum sollten über die Schnittstellen, am Besten über `\receive` vorher gesetzt sein, da dieser Befehl diese Werte per Schnittstelle abruft. @@ -54,9 +57,9 @@ In jedem Aktenordner zwei Dateien ``` DECKBLATT.csv ============= -INH,handle,aktenzeichen,zuständig +INH,handle,aktenzeichen,stand ``` -Wo `INH ∈ {AG,LG,StA,OLG,BVerfG,VG,OVG,GEG,SG}` und `zuständig='+'` in der Zeile des aktuellen Hauptbrieffeindes. +Wo `INH ∈ {AG,LG,StA,OLG,BVerfG,VG,OVG,GEG,SG}` und `stand='+'` in der Zeile des aktuellen Hauptbrieffeindes. ``` Wiedervorlagen.csv diff --git a/latex/letterhead.cls b/latex/letterhead.cls index c2f9acc..d8c3984 100644 --- a/latex/letterhead.cls +++ b/latex/letterhead.cls @@ -17,7 +17,10 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%% % Adress detection -%%%%%%%%%%%%%%%%%%%%%%%%%% +% usage: \receive % aktueller Hauptbrieffeind +% \receive{INH} % INH aus DECKBLATT.csv +% \receive*{handle} % handle aus Adressen.csv +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand*{\receivestar}[1]{ \DTLloaddb{adressen}{/home/bernhardt/Entwicklung/Letterhead/Adressen/Adressen.csv} \DTLassignfirstmatch{adressen}{handle}{#1}{\Name=Name,\Adresse=Adresse,\FaxNr=FaxNr,\TelNr=TelNr,\Opening=Anrede,\Closing=Closing}