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
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

View file

@ -20,6 +20,9 @@ Die **automatische Adresswahl** funktioniert mit dem Kommando `\receive`:
`\receive{<handle>}`
: 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
`\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.
@ -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

View file

@ -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}