Skip to content
Permalink
Browse files
added scripts
  • Loading branch information
Robin Schneider committed Aug 27, 2012
1 parent 06f9481 commit 09316b528dc90f45fa4ef6cf9cf5886c4e25c5bb
Showing with 222 additions and 0 deletions.
  1. +40 −0 scripts/LaTeX-git-log
  2. +41 −0 scripts/LaTeX-git-log-author
  3. +115 −0 scripts/LaTeX-git-wdiff
  4. +9 −0 scripts/makeindex-dtx
  5. +8 −0 scripts/pdfoptmod
  6. +9 −0 scripts/tlmgr-update
@@ -0,0 +1,40 @@
#!/bin/bash
## Tags auslesen und benutzen
echo '\begin{tabular}{lp{12cm}}
% \lable{tabular:Legende:git-log}
\textbf{Abkürzung} & \textbf{Bedeutung} \\
V & \texttt{Version} \\
Tag & \texttt{Markierung} einer Menge von Dateien,
aus denen sich zu einem beliebigen Zeitpunkt eine bestimmte Version wiederherstellen lässt \\
Fm & Wie viele \texttt{Dateien} innerhalb dieser Version \texttt{verändert} wurden \\
La & Wie viele \texttt{Zeilen} innerhalb dieser Version neu \texttt{hinzugekommen} sind \\
Ld & Wie viele \texttt{Zeilen} innerhalb dieser Version \texttt{gelöscht} wurden \\
\end{tabular}
\bigskip
\iflanguage{ngerman}{\shorthandoff{"}}{}
\resetplusplus
\renewcommand{\longtableheader}{\hline \multicolumn{1}{|c}{\textbf{V}} & \multicolumn{1}{c}{\textbf{Tag}}
& \multicolumn{1}{c}{\textbf{Datum}}
& \multicolumn{1}{c}{\textbf{Versionsbericht}} & \multicolumn{1}{c}{\textbf{Fm}}
& \multicolumn{1}{c}{\textbf{La}} & \multicolumn{1}{c|}{\textbf{Ld}} \\ \hline}
\begin{longtable}{|rlllrrr|}
\longtableheader
\endfirsthead
\longtableheader
\endhead
\hline \multicolumn{7}{|r|}{\longtableendfoot} \\ \hline
\endfoot
\hline% \hline
\endlastfoot
'
## git log --pretty=format:'%ai'
## git log --date=short --pretty=format:'%ad'
## for privacy
git log --date=short --pretty=format:'\hline \plusplus & TeMpforsed%d TeMpforsedend & %ad & %s &' --shortstat|grep -v "^$"|sed 'N;s/\n/ /'|sed 's/ deletions(-)$/ \\\\/g'|sed 's/ insertions(+),/ \&/g'|sed 's/+0100/CET/g'|sed 's/+0200/CEST/g'|sed 's/files changed,/\&/g'|sed 's/TeMpforsed ([a-zA-Z]*,\ //g'|sed 's/,\ [a-zA-Z]*) TeMpforsedend//g'|sed 's/master)\ \&/\&/g'|sed 's/[a-zA-Z]*) TeMpforsedend//g'|sed 's/TeMpforsed (//g'|sed 's/TeMpforsed TeMpforsedend //g'|sed 's/ TeMpforsed //g'|sed 's/ / /g'|sed 's/_/ /g'|tac
echo '\end{longtable}'

@@ -0,0 +1,41 @@
#!/bin/bash
## Tags auslesen und benutzen
echo '\begin{tabular}{lp{12cm}}
% \lable{tabular:Legende:git-log}
\textbf{Abkürzung} & \textbf{Bedeutung} \\
V & \texttt{Version} \\
Tag & \texttt{Markierung} einer Menge von Dateien,
aus denen sich zu einem beliebigen Zeitpunkt eine bestimmte Version wiederherstellen lässt \\
Fm & Wie viele \texttt{Dateien} innerhalb dieser Version \texttt{verändert} wurden \\
La & Wie viele \texttt{Zeilen} innerhalb dieser Version neu \texttt{hinzugekommen} sind \\
Ld & Wie viele \texttt{Zeilen} innerhalb dieser Version \texttt{gelöscht} wurden \\
\end{tabular}
\bigskip
\iflanguage{ngerman}{\shorthandoff{"}}{}
\resetplusplus
\renewcommand{\longtableheader}{\hline \multicolumn{1}{|c}{\textbf{V}} & \multicolumn{1}{c}{\textbf{Tag}}
& \multicolumn{1}{c}{\textbf{Autor}}
& \multicolumn{1}{c}{\textbf{Datum}}
& \multicolumn{1}{c}{\textbf{Versionsbericht}} & \multicolumn{1}{c}{\textbf{Fm}}
& \multicolumn{1}{c}{\textbf{La}} & \multicolumn{1}{c|}{\textbf{Ld}} \\ \hline}
\begin{longtable}{|rllllrrr|}
\longtableheader
\endfirsthead
\longtableheader
\endhead
\hline \multicolumn{8}{|r|}{\longtableendfoot} \\ \hline
\endfoot
\hline% \hline
\endlastfoot
'
## git log --pretty=format:'%ai'
## git log --date=short --pretty=format:'%ad'
## for privacy
git log --date=short --pretty=format:'\hline \plusplus & TeMpforsed%d TeMpforsedend & %an & %ad & %s &' --shortstat|grep -v "^$"|sed 'N;s/\n/ /'|sed 's/ deletions(-)$/ \\\\/g'|sed 's/ insertions(+),/ \&/g'|sed 's/+0100/CET/g'|sed 's/+0200/CEST/g'|sed 's/files changed,/\&/g'|sed 's/TeMpforsed ([a-zA-Z]*,\ //g'|sed 's/,\ [a-zA-Z]*) TeMpforsedend//g'|sed 's/master)\ \&/\&/g'|sed 's/[a-zA-Z]*) TeMpforsedend//g'|sed 's/TeMpforsed (//g'|sed 's/TeMpforsed TeMpforsedend //g'|sed 's/ TeMpforsed //g'|sed 's/ / /g'|sed 's/_/ /g'|tac
echo '\end{longtable}'

@@ -0,0 +1,115 @@
#!/bin/bash
## Konvertiert die Ausgabe von git diff --color-words in LaTeX Befehle
tmp="/tmp/git-wdiff.tmp"
convert2latex (){
sed 's/{/(((((/g' \
|sed 's/}/)))))/g' \
|cat -v \
|filtergitoutput \
|umlaute \
|grep -v "\\includegraphics" \
|grep -v "\\figurewrapper" \
|sed 's/\\/\\textbackslash /g' \
|sed 's/%/\\%/g' \
|sed 's/_/\\_/g' \
|sed 's/#/\\#/g' \
|sed 's/&/\\&/g' \
|sed 's/\^\[\[31m/ \\color{red}/g' \
|sed 's/\^\[\[32m/\\color{green}/g' \
|sed 's/\^\[\[36m/\n\\bigskip\\color{blue}/g' \
|sed 's/\^\[\[m/\\color{black}\\xspace /g' \
|sed 's/(((((/\\{/g' \
|sed 's/)))))/\\}/g'
}

umlaute (){
sed 's/M-CM-</ü/g' \
|sed 's/M-CM-^\\/Ü/g' \
|tr "$" "x"|sed 's/M-CM-x/ä/g' \
|sed 's/M-CM-^D/Ä/g' \
|sed 's/M-CM-6/ö/g' \
|sed 's/M-CM-^V/Ö/g' \
|sed 's/M-CM-^_/ß/g' \
|sed 's/M-bM-^@M-^^/„/g' \
|sed 's/M-bM-^@M-^\\/“/g'
}
param="$#"

filtergitoutput (){
grep -v "\^\[\[1mdiff --git a" \
|grep -v "\^\[\[1mnew file mode " \
|grep -v "\^\[\[1mdeleted file mode " \
|grep -v "\^\[\[1mindex " \
|grep -v "\^\[\[1m--- " \
|grep -v "\^\[\[1m+++ "
}

echoVersionstable (){
echo '\iflanguage{ngerman}{\shorthandoff{"}}{}
\renewcommand{\longtableheader}{\hline \multicolumn{1}{|c}{\textbf{Tag}}
& \multicolumn{1}{c}{\textbf{Hash}}
& \multicolumn{1}{c}{\textbf{Erstellungsdatum}}
& \multicolumn{1}{c|}{\textbf{Versionsbericht}} \\ \hline}
\begin{longtable}{|lllp{7.5cm}|}
%p{8cm}
\longtableheader
\endfirsthead
\longtableheader
\endhead
\hline \multicolumn{4}{|r|}{\longtableendfoot} \\ \hline
\endfoot
\hline% \hline
\endlastfoot
'
(git log --pretty=format:'\hline xXx%dxXx & %h & %ai & %s \\' \
|grep "$secundhash"'[),]'
git log --pretty=format:'\hline xXx%dxXx & %h & %ai & %s \\' \
|grep "$firsthash"'[),]') \
|sed 's/+0100/CET/g'|sed 's/+0200/CEST/g' \
|sed 's/, master/,/g' \
|sed 's/HEAD,/aktuell/g' \
|sed 's/xXx (//g'|sed 's/)xXx//g'
echo '\end{longtable}'
}

echoErklaerung (){
echo "%\section*{Verglich zweier Versionen}"
echo "%\pdfbookmark[1]{Versionenvergleich}{versionenvergleich}"
echo "Alles, was \textcolor{green}{grün} ist, ist in der aktuellen"
echo "Version neu hinzugekommen."
echo "Die \textcolor{red}{roten} Textstellen wurden entfernt."
echo "\textcolor{blue}{Blaue} Textstellen zeigen Kommentarzeilen"
echo "vom Versionskontrollsystem an."
echo "Nach einer solchen Kommentarzeile ist ein Textsprung zu erwarten."
}


if [ $param == 0 ]
then if [ -n "`git diff --color-words`" ]
then echoErklaerung
git diff --color-words | convert2latex
fi
else if [ -z "`echo $1 |grep -v "\.\."`" ]
then firsthash=${1%..*}
secundhash=${1#*..}
firstuntilsecund="$firsthash..$secundhash"
shift
while [ $# -ge 1 ];do files="$files $1";shift;done
## git diff --color-words $firsthash..$secundhash &>/dev/null
if [ -n "`git diff --color-words "$firstuntilsecund" $files`" ]
then echoVersionstable
echoErklaerung
git diff --color-words "$firstuntilsecund" $files | convert2latex
fi
else while [ $# -ge 1 ];do files="$files $1";shift;done
if [ -n "`git diff --color-words $files`" ]
then echoVersionstable
echoErklaerung
git diff --color-words $files | convert2latex
fi
fi
fi

@@ -0,0 +1,9 @@
#!/bin/sh
if [ -z "$1" ]
then echo "Please give the jobname as parameter"
exit 1
fi
jobname=${1%.}

makeindex -s gglo.ist -o "$jobname.gls" "$jobname.glo"
makeindex -s gind "$jobname"
@@ -0,0 +1,8 @@
#!/bin/bash
if [ -z "$1" ]
then echo "Bitte den Dateinamen der PDF Datei übergeben"
echo "Die Datei wird überschrieben!"
exit 1
fi
pdfopt "$1" "$1.tmp"
mv "$1.tmp" "$1"
@@ -0,0 +1,9 @@
#!/bin/bash
#http://dante.ctan.org/mirmon/#de
#tlmgr option location http://ftp.uni-erlangen.de/mirrors/CTAN/systems/texlive/tlnet/
source /etc/profile
export http_proxy='http://knuth.intra:3128/' ## change this
tlmgr update --self bin-texlive texlive.infra
tlmgr update --all


0 comments on commit 09316b5

Please sign in to comment.