Pfadkonsistenz für die Schnittstelle zu sipgate-cli (und sowieso)

This commit is contained in:
Gandalf 2021-03-14 13:58:09 +01:00
parent d981ef7ad3
commit a6baa58013
3 changed files with 36 additions and 34 deletions

View file

@ -6,6 +6,7 @@ F=$1
O=false O=false
LOC="" LOC=""
COL="" COL=""
BASEPATH=$(dirname $(realpath $0))
if [ $F = "-l" ] # -l möchte kein weiteres Argument, im Gegensatz zu allen anderen Optionen. if [ $F = "-l" ] # -l möchte kein weiteres Argument, im Gegensatz zu allen anderen Optionen.
then then
@ -13,7 +14,7 @@ then
while IFS="," read -r COL1 COL2 COLX while IFS="," read -r COL1 COL2 COLX
do do
echo "$COL1: $COL2" echo "$COL1: $COL2"
done < <(tail -n +2 Adressen.csv) done < <(tail -n +2 $BASEPATH/Adressen.csv)
exit 0 exit 0
fi fi
@ -28,60 +29,55 @@ then
echo "Ignoriere überschüssige Argumente" echo "Ignoriere überschüssige Argumente"
fi fi
if [ $F = "-n" ] case $F in
then "-n")
COL=Name COL=Name
O=true O=true
fi ;;
if [ $F = "-a" ] "-a")
then
COL=Anrede COL=Anrede
O=true O=true
fi ;;
if [ $F = "-d" ] "-d")
then
COL=Adresse COL=Adresse
O=true O=true
fi ;;
if [ $F = "-f" ] "-f")
then
# return fax number to be used by sipgate-cli # return fax number to be used by sipgate-cli
COL=FaxNr COL=FaxNr
O=true O=true
fi ;;
if [ $F = "-t" ] "-t")
then
COL=TelNr COL=TelNr
O=true O=true
fi ;;
if [ $F = "-c" ] "-c")
then
COL=Closing COL=Closing
O=true O=true
fi ;;
if [ $F = "-p" ] "-p")
then
COL=parent COL=parent
O=true O=true
fi ;;
esac
if [ $O = true ] if [ $O = true ]
then then
LOC=$(head -1 Adressen.csv | tr ',' '\n' | nl |grep -w "$COL" | tr -d " " | awk -F " " '{print $1}') #calculating position of requested Col 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" Adressen.csv | head -n 1 | cut -d "," -f$LOC | sed 's/"//g' 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) #Returning requested column, making sure to return only one result (even though redundant results shouldn't be possible)
exit 0 exit 0
fi fi
if [ $F = "-e" ] if [ $F = "-e" ]
then 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) ISH=$? #exit code. Der if-Block wird ausgeführt, wenn nichts gefunden wurde. (ISH steht für is handle)
if [ $ISH -eq 1 ] if [ $ISH -eq 1 ]
then then
@ -94,8 +90,8 @@ then
exit 1 exit 1
fi fi
fi fi
IFS=',' read -ra HEADER <<< $(grep "^handle" Adressen.csv) #read field keys IFS=',' read -ra HEADER <<< $(grep "^handle" $BASEPATH/Adressen.csv) #read field keys
IFS=',' read -ra VALUES <<< $(grep "^$H" Adressen.csv) #read old values 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 loop startet bei 1, um die handle Spalte nicht zu editieren:
for (( i=1; i<${#HEADER[@]}; i++ )); for (( i=1; i<${#HEADER[@]}; i++ ));
do do
@ -105,7 +101,7 @@ then
if [ ${HEADER[$i]} = "parent" ] if [ ${HEADER[$i]} = "parent" ]
then then
PARENT=${VALUES[$i]} 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. ISP=$? #exit code. Der if-Block wird ausgeführt, wenn nichts gefunden wurde.
if [ $ISP -eq 1 ] if [ $ISP -eq 1 ]
then then
@ -118,7 +114,7 @@ fi
if [ $F = "-g" ] if [ $F = "-g" ]
then 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) ISH=$? #exit code. Der if-Block wird ausgeführt, wenn etwas gefunden wurde. (ISH steht für is handle)
if [ $ISH -ne 1 ] if [ $ISH -ne 1 ]
then then
@ -136,8 +132,8 @@ then
read -p 'Nächsthöhere Hierarchieebene (handle): ' PARENT read -p 'Nächsthöhere Hierarchieebene (handle): ' PARENT
ANREDE=${ANREDE:-"Damen und Herren"} ANREDE=${ANREDE:-"Damen und Herren"}
CLOSING=${CLOSING:-"Mit der Ihnen gebührenden Hochachtung"} CLOSING=${CLOSING:-"Mit der Ihnen gebührenden Hochachtung"}
echo "$H,$NAME,$ANREDE,$STREET\\\\$CITY,$FAX,$TEL,$CLOSING,$PARENT" >> Adressen.csv echo "$H,$NAME,$ANREDE,$STREET\\\\$CITY,$FAX,$TEL,$CLOSING,$PARENT" >> $BASEPATH/Adressen.csv
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. ISP=$? #exit code. Der if-Block wird ausgeführt, wenn nichts gefunden wurde.
if [ $ISP -eq 1 ] if [ $ISP -eq 1 ]
then then

View file

@ -20,6 +20,9 @@ Die **automatische Adresswahl** funktioniert mit dem Kommando `\receive`:
`\receive{<handle>}` `\receive{<handle>}`
: in dieser Version ist `<handle>` ein Funktionshandle `INH` aus der Datei `DECKBLATT.csv` : in dieser Version ist `<handle>` 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 ### Templates
`\einspruch{<Art>}` `\einspruch{<Art>}`
: `<Art>` 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. : `<Art>` 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 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 Wiedervorlagen.csv

View file

@ -17,7 +17,10 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%
% Adress detection % Adress detection
%%%%%%%%%%%%%%%%%%%%%%%%%% % usage: \receive % aktueller Hauptbrieffeind
% \receive{INH} % INH aus DECKBLATT.csv
% \receive*{handle} % handle aus Adressen.csv
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand*{\receivestar}[1]{ \newcommand*{\receivestar}[1]{
\DTLloaddb{adressen}{/home/bernhardt/Entwicklung/Letterhead/Adressen/Adressen.csv} \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} \DTLassignfirstmatch{adressen}{handle}{#1}{\Name=Name,\Adresse=Adresse,\FaxNr=FaxNr,\TelNr=TelNr,\Opening=Anrede,\Closing=Closing}