summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/milog/milog
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/milog/milog')
-rw-r--r--Master/texmf-dist/doc/latex/milog/milog93
1 files changed, 93 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/milog/milog b/Master/texmf-dist/doc/latex/milog/milog
new file mode 100644
index 00000000000..21f00748d38
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/milog/milog
@@ -0,0 +1,93 @@
+#!/bin/bash
+#
+VERSION="v1.0 (C) Josef Kleber (LPPL)"
+INPUT=""
+OUTPUT="_milog_.csv"
+DATE=""
+PDF="milog"
+CSV="true"
+LATEX="true"
+#
+while getopts "i:o:d:p:cl" flag
+do
+ case "$flag" in
+ i) INPUT="$OPTARG";;
+ o) OUTPUT="$OPTARG";;
+ p) PDF="$OPTARG";;
+ d) DATE="$OPTARG";;
+ c) LATEX="false";;
+ l) CSV="false";;
+ esac
+done
+#
+if [ "$DATE" = "" ]
+then
+ regex='^[0-9]{6}$'
+ YEARMONTH=`echo "$INPUT" | cut -d'.' -f1`
+ if [[ "$YEARMONTH" =~ $regex ]]
+ then
+ YEAR=`echo "$YEARMONTH" | cut -c1-4`
+ MONTH=`echo "$YEARMONTH" | cut -c5-6`
+ DATE="$MONTH/$YEAR"
+ fi
+fi
+#
+if [ "$CSV" = "true" ]
+then
+ echo "reading $INPUT"
+ cat "$INPUT" | \
+ # delete first 3 lines
+ head -n -4 | \
+ # delete last 3 lines
+ tail -n +4 | \
+ # deal with "empty" lines
+ sed -e 's/;;;;;;;;;$/{};{};{};{};{};{};{};{};{}/' | \
+ # delete some columns we don't need
+ cut -d ';' -f 2-4,8-10 | \
+ # replace the last ';' with ';{}'
+ sed -e 's/;$/;{}/' | \
+ # replace header keys
+ sed -e 's/Datum/tag/' -e 's/von/beginn/' -e 's/bis/ende/' -e 's/Pausen/pause/' -e 's/Netto/dauer/' -e 's/Visum/bemerkung/' | \
+ # change 'Ruhetag' lines
+ sed -e 's/\(.*\);Ruhetag;Ruhetag;.*/\1;{};{};{};{};Ruhetag/' | \
+ # change 'Ferien/Urlaub' lines
+ sed -e 's#\(.*\);Ferien/Urlaub;Ferien/Urlaub;.*#\1;{};{};{};{};Urlaub#' | \
+ # change 'Krank' lines
+ sed -e 's/\(.*\);Krank;Krank;.*/\1;{};{};{};{};Krank/' | \
+ # change 'Feiertag' lines
+ sed -e 's/\(.*\);Feiertag;Feiertag;.*/\1;{};{};{};{};Feiertag/' | \
+ # change last line with total hours
+ sed -e 's/^;;;;\(.*\)/nan;nan;nan;nan;\1;nan/' | \
+ # replace '0:00' with '{}'
+ sed -e 's/0:00/{}/g' | \
+ # change order of columns and field seperator (';' -> '\t')
+ awk 'BEGIN { OFS="\t"; FS=";" } { print $1, $2, $4, $3, $5, $6 }' >"$OUTPUT"
+ echo "writing $OUTPUT"
+fi
+#
+if [ "$LATEX" = "true" ]
+then
+ if [ "$CSV" = "false" ]
+ then
+ if [ -z "$INPUT" ]
+ then
+ OUTPUT="_milog_.csv"
+ else
+ OUTPUT="$INPUT"
+ fi
+ fi
+ cat >"$PDF.tex" <<EOF
+\documentclass{milog}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{libertine}
+\begin{document}
+\milog[month={$DATE}]{$OUTPUT}
+\end{document}
+EOF
+ echo "creating $PDF.pdf"
+ pdflatex "$PDF" 2>&1 >/dev/null
+ rm "$PDF".tex "$PDF".aux "$PDF".log
+fi
+#
+exit 0