Skip to content

Commit 3066d7e

Browse files
committed
improved dependency version printing
1 parent c539904 commit 3066d7e

File tree

1 file changed

+110
-12
lines changed

1 file changed

+110
-12
lines changed

scripts/dependencyVersions.sh

Lines changed: 110 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,115 @@ set -o errexit # set -e : exit the script if any statement returns a non-true
1111
# get the script directory
1212
scriptDir="$(dirname "$0")"
1313

14-
# print operating systems infos
15-
( lsb_release -ds || cat /etc/*release || uname -om ) 2>/dev/null | head -n1
16-
uname -mrs
14+
# see https://unix.stackexchange.com/questions/6345
15+
if [ -f /etc/os-release ]; then
16+
# freedesktop.org and systemd
17+
. /etc/os-release
18+
osName=$NAME
19+
osVersion=$VERSION_ID
20+
elif type lsb_release >/dev/null 2>&1; then
21+
# linuxbase.org
22+
osName="$(lsb_release -si)"
23+
osVersion="$(lsb_release -sr)"
24+
elif [ -f /etc/lsb-release ]; then
25+
# For some versions of Debian/Ubuntu without lsb_release command
26+
. /etc/lsb-release
27+
osName="$DISTRIB_ID"
28+
osVersion="$DISTRIB_RELEASE"
29+
elif [ -f /etc/debian_version ]; then
30+
# Older Debian/Ubuntu/etc.
31+
osName="Debian"
32+
osVersion="$(cat /etc/debian_version)"
33+
elif [ -f /etc/SuSe-release ]; then
34+
# Older SuSE/etc.
35+
osName="Old SuSE"
36+
osVersion=""
37+
elif [ -f /etc/redhat-release ]; then
38+
osName="Old ReadHat"
39+
osVersion=""
40+
else
41+
# Fall back to uname, e.g. "Linux <version>", also works for BSD, etc.
42+
osName="$(uname -s)"
43+
osVersion="$(uname -r)"
44+
fi
45+
46+
osAndVersion="$osName $osVersion"
47+
osAndVersion="$(sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e 's/[[:space:]]+/[[:space:]]/'<<<"${osAndVersion}")" || true
48+
if [ -z "$osAndVersion" ]; then
49+
osAndVersion="$(( lsb_release -ds || cat /etc/*release || uname -om ) 2>/dev/null | head -n1)"
50+
osAndVersion="$(sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e 's/[[:space:]]+/[[:space:]]/'<<<"${osAndVersion}")" || true
51+
fi
52+
if [ -n "$osAndVersion" ]; then
53+
echo "$osAndVersion"
54+
fi
55+
56+
linuxVersion="$(uname -mrs)" || true
57+
linuxVersion="$(sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e 's/[[:space:]]+/[[:space:]]/'<<<"${linuxVersion}")" || true
58+
if [ -n "$linuxVersion" ]; then
59+
echo "$linuxVersion"
60+
fi
61+
62+
# separator
1763
echo ""
64+
1865
# Print the python version.
19-
echo "python: $(python3 --version | sed -n 's/.*Python\s*\([.0-9]*\)/\1/p')"
20-
echo "latexgit_py: $(pip freeze | grep latexgit | sed -n 's/.*==*\([.0-9]*\)/\1/p')"
21-
echo "latexgit_tex: $(less $scriptDir/../styles/latexgit.sty | sed -n 's/.*\\ProvidesPackage{latexgit}\[[0-9\/]* *\([.0-9]*\) .*\].*/\1/p')"
22-
echo "pycommons: $(pip freeze | grep pycommons | sed -n 's/.*==*\([.0-9]*\)/\1/p')"
23-
echo "pdflatex: $(pdflatex --version | grep 'pdfTeX 3')"
24-
echo "biber: $(biber --version | sed -n 's/.*:\s*\([.0-9]*\)/\1/p')"
25-
echo "makeglossaries: $(makeglossaries --version | grep Version | sed -n 's/.*Version\s*\([.0-9]*\)/\1/p')"
26-
echo "makeindex: $(echo '' | makeindex 2>&1 | grep makeindex | sed -n 's/.*version\s*\([.0-9]*\)/\1/p')"
27-
echo "ghostscript: $(ghostscript --version)"
66+
pythonVersion="$(python3 --version | sed -n 's/.*Python\s*\([.0-9]*\)/\1/p')" || true
67+
pythonVersion="$(sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e 's/[[:space:]]+/[[:space:]]/'<<<"${pythonVersion}")" || true
68+
if [ -n "$pythonVersion" ]; then
69+
echo "python: $pythonVersion"
70+
fi
71+
72+
latexgitPyVersion="$(pip freeze | grep latexgit | sed -n 's/.*==*\([.0-9]*\)/\1/p')" || true
73+
latexgitPyVersion="$(sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e 's/[[:space:]]+/[[:space:]]/'<<<"${latexgitPyVersion}")" || true
74+
if [ -n "$latexgitPyVersion" ]; then
75+
echo "latexgit_py: $latexgitPyVersion"
76+
fi
77+
78+
latexgitTexVersion="$(less $scriptDir/../styles/latexgit.sty | sed -n 's/.*\\ProvidesPackage{latexgit}\[[0-9\/]* *\([.0-9]*\) .*\].*/\1/p')" || true
79+
latexgitTexVersion="$(sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e 's/[[:space:]]+/[[:space:]]/'<<<"${latexgitTexVersion}")" || true
80+
if [ -n "$latexgitTexVersion" ]; then
81+
echo "latexgit_tex: $latexgitTexVersion"
82+
fi
83+
84+
pycommonsVersion="$(pip freeze | grep pycommons | sed -n 's/.*==*\([.0-9]*\)/\1/p')" || true
85+
pycommonsVersion="$(sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e 's/[[:space:]]+/[[:space:]]/'<<<"${pycommonsVersion}")" || true
86+
if [ -n "$pycommonsVersion" ]; then
87+
echo "pycommons: $pycommonsVersion"
88+
fi
89+
90+
pdflatexVersion="$(pdflatex --version | grep 'pdfTeX 3')" || true
91+
pdflatexVersion="$(sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e 's/[[:space:]]+/[[:space:]]/'<<<"${pdflatexVersion}")" || true
92+
if [ -n "$pdflatexVersion" ]; then
93+
echo "pdflatex: $pdflatexVersion"
94+
fi
95+
96+
biberVersion="$(biber --version | sed -n 's/.*:\s*\([.0-9]*\)/\1/p')" || true
97+
biberVersion="$(sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e 's/[[:space:]]+/[[:space:]]/'<<<"${biberVersion}")" || true
98+
if [ -n "$biberVersion" ]; then
99+
echo "biber: $biberVersion"
100+
fi
101+
102+
makeglossariesVersion="$(makeglossaries --version | grep Version | sed -n 's/.*Version\s*\([.0-9]*\)/\1/p')" || true
103+
makeglossariesVersion="$(sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e 's/[[:space:]]+/[[:space:]]/'<<<"${makeglossariesVersion}")" || true
104+
if [ -n "$makeglossariesVersion" ]; then
105+
echo "makeglossaries: $makeglossariesVersion"
106+
fi
107+
108+
makeindexVersion="$(echo '' | makeindex 2>&1 | grep makeindex | sed -n 's/.*version\s*\([.0-9]*\)/\1/p')" || true
109+
makeindexVersion="$(sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e 's/[[:space:]]+/[[:space:]]/'<<<"${makeindexVersion}")" || true
110+
if [ -n "$makeindexVersion" ]; then
111+
echo "makeindex: $makeindexVersion"
112+
fi
113+
114+
ghostscriptVersion="$(ghostscript --help | head -n 1 | sed -e 's/GPL//i' | sed -e 's/GhostScript//i')" || true
115+
ghostscriptVersion="$(sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e 's/[[:space:]]+/[[:space:]]/'<<<"${ghostscriptVersion}")" || true
116+
if [ -z "$ghostscriptVersion" ]; then
117+
ghostscriptVersion="$(ghostscript --version)" || true
118+
ghostscriptVersion="$(sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e 's/[[:space:]]+/[[:space:]]/'<<<"${ghostscriptVersion}")" || true
119+
fi
120+
if [ -n "$ghostscriptVersion" ]; then
121+
echo "ghostscript: $ghostscriptVersion"
122+
fi
123+
124+
echo ""
125+
echo "date: $(date +'%0Y-%0m-%0d %0R:%0S')"

0 commit comments

Comments
 (0)