enhance checks on parameters and idea for future ISO date

This commit is contained in:
vv01f 2020-04-15 03:57:44 +02:00
commit 60216aedf4
Signed by untrusted user who does not match committer: vv01f
GPG Key ID: 02625A16AC1D1FF6
2 changed files with 174 additions and 52 deletions

125
data.xml
View File

@ -20,6 +20,29 @@
]>
<schleudern>
<!--schleuder id="102">
<date></date>
<image>covers/ds102.jpg</image>
<link filesize=""></link>
<link filesize=""></link>
<preface></preface>
<teaser></teaser>
<info date=""></info>
</schleuder-->
<!--schleuder id="101">
<date></date>
<image>covers/ds101.jpg</image>
<link filesize=""></link>
<link filesize=""></link>
<preface></preface>
</schleuder-->
<!--schleuder id="100">
<date></date>
<image>covers/ds100.jpg</image>
<link filesize=""></link>
<link filesize=""></link>
<preface></preface>
</schleuder--><!-- todo: info aus #98 in #100 verschieben, teaser schreiben -->
<schleuder id="99">
<date>Fri, 15 Sep 2019 00:00 UT</date>
<image>covers/ds099.jpg</image>
@ -43,477 +66,559 @@ Zudem gibt es einen neuen Redaktions-PGP-Key, erhältlich auf allen Keyservern o
<teaser>Lange war es ruhig um die Datenschleuder. Fast schon zu lange. Daher freuen wir uns umso mehr, dass die Ausgabe 97 fertig gedruckt und auf dem Weg zu den Mitgliedern und Abonnenten ist. Wie üblich können Abonnements und Einzelausgaben <a href="order.html">direkt beim CCC</a> erworben werden.</teaser>
</schleuder>
<schleuder id="96">
<date>Sun, 18 Dec 2011 00:00 UT</date>
<image>covers/ds96.jpg</image>
<link>/pdfs/ds096.pdf</link>
<filesize>9558786</filesize>
<date>Sun, 18 Dec 2011 00:00 UT</date>
<teaser>Passend zum 28. Chaos Communication Congress ist die 96. Datenschleuder erschienen und befindet sich ATM auf dem Weg zu den Abonnenten. Wie immer gibt es zur Überbrückung der Wartezeit das <a href="096/editorial.html">Editorial online zum Selberausdrucken</a>.</teaser>
<info date="Sun, 03 Jun 2012 00:00 UT">Es gibt einen neuen Redaktions-PGP-Key, erhältlich auf allen Keyservern oder <a href="public-key.asc">hier</a>.</info>
</schleuder>
<schleuder id="95">
<date>Sun, 04 Sep 2011 00:00 UT</date>
<image>covers/ds95.jpg</image>
<link>/pdfs/ds095.pdf</link>
<filesize>1633452</filesize>
<date>Sun, 04 Sep 2011 00:00 UT</date>
<teaser>Nach längerer Wartezeit ist jetzt die 95. Ausgabe der Datenschleuder erschienen und auf dem Weg zu den Abonnenten. Sie ist wie immer im gut sortierten Buchhandel oder <a href="order.html">direkt vom CCC</a> auch als Einzelexemplar zu beziehen. Während Ihr auf Euer Exemplar wartet, lest doch solange <a href="095/editorial.html">das Editorial</a>.</teaser>
<info date="Wed, 07 Sep 2011 00:00 UT">Aufgrund eines kleinen «Fuckups» wird die Datenschleuder bei den Abonnenten voraussichtlich. fünf. bis zehn Minu... äh, Tage später eintreffen. Wir bitten um Verständnis.</info>
</schleuder>
<schleuder id="94">
<date>Mon, 27 Sep 2010 00:00 UT</date>
<image>covers/ds94.jpg</image>
<link>/pdfs/ds094.pdf</link>
<filesize>9366127</filesize>
<date>Mon, 27 Sep 2010 00:00 UT</date>
</schleuder>
<schleuder id="93">
<date>Wed, 17 Dec 2008 00:00 UT</date>
<image>covers/ds93.jpg</image>
<link>/pdfs/ds093.pdf</link>
<filesize>8651240</filesize>
<date>Wed, 17 Dec 2008 00:00 UT</date>
<teaser>Pünktlich zum <a href="https://events.ccc.de/congress/2008/wiki/Main_Page/">25. Chaos Communication Congress</a> sollten die inzwischen fast 2800 Mitglieder und Abonnenten ihre Datenschleuder im Briefkasten vorfinden. Schwerpunkte sind in dieser Ausgabe der dilettantische Umgang des BNDs mit ihren achsogeheimen Netzen und eine Analyse des XMPP-Protokolls nach kryptografischen Gesichtspunkten. Wie immer gibt es zum Schmökern neben der bereits veröffentlichten <a href="vorab/Sicherheitsleck_Infratest.pdf">Vorabmeldung</a> auch das <a href="093/editorial.html">Editorial</a> zum Internetausdrucken und vorm Kamin lesen.</teaser>
<info date="Wed, 18 Mar 2009 00:00 UT">Der Vorstand des CCC hat die Wiedereinführung der beliebten 8-Ausgaben Miniabos beschlossen. Details gibt es <a href="order.html">hier</a>.</info>
</schleuder>
<schleuder id="92">
<date>Sat, 29 Mar 2008 00:00 UT</date>
<image>covers/ds92.jpg</image>
<link>/pdfs/ds092.pdf</link>
<filesize>5805592</filesize>
<date>Sat, 29 Mar 2008 00:00 UT</date>
<teaser>Die 92. Ausgabe der Datenschleuder ist erschienen und auf dem Weg zu den Abonnenten. Als besonderes Gimmick liegt ihr dieses Mal eine Fingerattrappe nach dem Bild unseres geliebten Innenministers bei. Sie ist wie immer im gut sortierten Buchhandel oder <a href="order.html">direkt vom CCC</a> auch als Einzelexemplar zu beziehen. Während ihr auf Eure Ausgabe wartet, lest doch solange <a hef="092/editorial.html">das Editorial</a>.</teaser>
</schleuder>
<schleuder id="91">
<date>Thu, 19 Jul 2007 00:00 UT</date>
<image>covers/ds91.jpg</image>
<link>/pdfs/ds091.pdf</link>
<filesize>8523204</filesize>
<date>Thu, 19 Jul 2007 00:00 UT</date>
</schleuder>
<schleuder id="90">
<date>Tue, 03 Oct 2006 00:00 UT</date>
<image>covers/ds90.jpg</image>
<link>/pdfs/ds090.pdf</link>
<filesize>2249622</filesize>
<date>Tue, 03 Oct 2006 00:00 UT</date>
<teaser>Das Experiment ist beendet. Die Datenschleuder ist dank dem Einsatz hochmoderner Technologien (HTML) auf dem besten Wege, den dreijährigen Rückstand wieder aufzuholen. Redaktionssysteme sind im Prinzip in Ordnung. In der Praxis rockt jedoch vi.</teaser>
</schleuder>
<schleuder id="89">
<image>covers/ds89.jpg</image>
<link>/pdfs/ds089.pdf</link>
<filesize>3860454</filesize>
<!--date></date-->
</schleuder>
<schleuder id="88">
<image>covers/ds88.jpg</image>
<link>/pdfs/ds088.pdf</link>
<filesize>1262835</filesize>
<!--date></date-->
</schleuder>
<schleuder id="87">
<image>covers/ds87.jpg</image>
<link>/pdfs/ds087.pdf</link>
<filesize>2331105</filesize>
<!--date></date-->
</schleuder>
<schleuder id="86">
<image>covers/ds86.jpg</image>
<link>/pdfs/ds086.pdf</link>
<filesize>1807977</filesize>
<!--date></date-->
</schleuder>
<schleuder id="85">
<image>covers/ds85.jpg</image>
<link>/pdfs/ds085.pdf</link>
<filesize>1635260</filesize>
<!--date></date-->
</schleuder>
<schleuder id="84">
<image>covers/ds84.jpg</image>
<link>/pdfs/ds084.pdf</link>
<filesize>890339</filesize>
<!--date></date-->
</schleuder>
<schleuder id="83">
<image>covers/ds83.jpg</image>
<link>/pdfs/ds083.pdf</link>
<filesize>1114051</filesize>
<!--date></date-->
</schleuder>
<schleuder id="82">
<image>covers/ds82.jpg</image>
<link>/pdfs/ds082.pdf</link>
<filesize>1692019</filesize>
<!--date></date-->
</schleuder>
<schleuder id="81">
<image>covers/ds81.jpg</image>
<link>/pdfs/ds081.pdf</link>
<filesize>659054</filesize>
<!--date></date-->
</schleuder>
<schleuder id="80">
<image>covers/ds80.jpg</image>
<link>/pdfs/ds080.pdf</link>
<filesize>563840</filesize>
<!--date></date-->
</schleuder>
<schleuder id="79">
<image>covers/ds79.jpg</image>
<link>/pdfs/ds079.pdf</link>
<filesize>5295970</filesize>
<!--date></date-->
</schleuder>
<schleuder id="78">
<image>covers/ds78.jpg</image>
<link>/pdfs/ds078.pdf</link>
<filesize>3068721</filesize>
<!--date></date-->
</schleuder>
<schleuder id="77">
<image>covers/ds77.jpg</image>
<link>/pdfs/ds077.pdf</link>
<filesize>7138473</filesize>
<!--date></date-->
</schleuder>
<schleuder id="76">
<image>covers/ds76.jpg</image>
<link>/pdfs/ds076.pdf</link>
<filesize>8175112</filesize>
<!--date></date-->
</schleuder>
<schleuder id="75">
<image>covers/ds75.jpg</image>
<link>/pdfs/ds075.pdf</link>
<filesize>8351323</filesize>
<!--date></date-->
</schleuder>
<schleuder id="74">
<image>covers/ds74.jpg</image>
<link>/pdfs/ds074.pdf</link>
<filesize>2064807</filesize>
<!--date></date-->
</schleuder>
<schleuder id="73">
<image>covers/ds73.jpg</image>
<link>/pdfs/ds073.pdf</link>
<filesize>5497703</filesize>
<!--date></date-->
</schleuder>
<schleuder id="72">
<image>covers/ds72.jpg</image>
<link>/pdfs/ds072.pdf</link>
<filesize>278270</filesize>
<!--date></date-->
</schleuder>
<schleuder id="71">
<image>covers/ds71.jpg</image>
<link>/pdfs/ds071.pdf</link>
<filesize>499707</filesize>
<!--date></date-->
</schleuder>
<schleuder id="70">
<image>covers/ds70.jpg</image>
<link>/pdfs/ds070.pdf</link>
<filesize>4904429</filesize>
<!--date></date-->
</schleuder>
<schleuder id="68/69">
<image>covers/ds68.jpg</image>
<link>/pdfs/ds068.pdf</link>
<filesize>8750789</filesize>
<!--date></date-->
</schleuder>
<schleuder id="67">
<image>covers/ds67.jpg</image>
<link>/pdfs/ds067.pdf</link>
<filesize>685776</filesize>
<!--date></date-->
</schleuder>
<schleuder id="66">
<image>covers/ds66.jpg</image>
<link>/pdfs/ds066.pdf</link>
<filesize>381865</filesize>
<!--date></date-->
</schleuder>
<schleuder id="65">
<image>covers/ds65.jpg</image>
<link>/pdfs/ds065.pdf</link>
<filesize>191921</filesize>
<!--date></date-->
</schleuder>
<schleuder id="64">
<image>covers/ds64.jpg</image>
<link>/pdfs/ds064.pdf</link>
<filesize>683107</filesize>
<!--date></date-->
</schleuder>
<schleuder id="63">
<image>covers/ds63.jpg</image>
<link>/pdfs/ds063.pdf</link>
<filesize>402940</filesize>
<!--date></date-->
</schleuder>
<schleuder id="62">
<image>covers/ds62.jpg</image>
<link>/pdfs/ds062.pdf</link>
<filesize>645827</filesize>
<!--date></date-->
</schleuder>
<schleuder id="61">
<image>covers/ds61.jpg</image>
<link>/pdfs/ds061.pdf</link>
<filesize>2218050</filesize>
<!--date></date-->
</schleuder>
<schleuder id="60">
<image>covers/ds60.jpg</image>
<link>/pdfs/ds060.pdf</link>
<filesize>525227</filesize>
<!--date></date-->
</schleuder>
<schleuder id="59">
<image>covers/ds59.jpg</image>
<link>/pdfs/ds059.pdf</link>
<filesize>441467</filesize>
<!--date></date-->
</schleuder>
<schleuder id="58">
<image>covers/ds58.jpg</image>
<link>/pdfs/ds058.pdf</link>
<filesize>287742</filesize>
<!--date></date-->
</schleuder>
<schleuder id="57">
<image>covers/ds57.jpg</image>
<link>/pdfs/ds057.pdf</link>
<filesize>761897</filesize>
<!--date></date-->
</schleuder>
<schleuder id="56">
<image>covers/ds56.jpg</image>
<link>/pdfs/ds056.pdf</link>
<filesize>467698</filesize>
<!--date></date-->
</schleuder>
<schleuder id="55">
<image>covers/ds55.jpg</image>
<link>/pdfs/ds055.pdf</link>
<filesize>2922086</filesize>
<!--date></date-->
</schleuder>
<schleuder id="54">
<image>covers/ds54.jpg</image>
<link>/pdfs/ds054.pdf</link>
<filesize>7974465</filesize>
<!--date></date-->
</schleuder>
<schleuder id="53">
<image>covers/ds53.jpg</image>
<link>/pdfs/ds053.pdf</link>
<filesize>817544</filesize>
<!--date></date-->
</schleuder>
<schleuder id="52">
<image>covers/ds52.jpg</image>
<link>/pdfs/ds052.pdf</link>
<filesize>1152589</filesize>
<!--date></date-->
</schleuder>
<schleuder id="51">
<image>covers/ds51.jpg</image>
<link>/pdfs/ds051.pdf</link>
<filesize>1887242</filesize>
<!--date></date-->
</schleuder>
<schleuder id="50">
<image>covers/ds50.jpg</image>
<link>/pdfs/ds050.pdf</link>
<filesize>1275237</filesize>
<!--date></date-->
</schleuder>
<schleuder id="49">
<image>covers/ds49.jpg</image>
<link>/pdfs/ds049.pdf</link>
<filesize>943611</filesize>
<!--date></date-->
</schleuder>
<schleuder id="48">
<image>covers/ds48.jpg</image>
<link>/pdfs/ds048.pdf</link>
<filesize>841492</filesize>
<!--date></date-->
</schleuder>
<schleuder id="47">
<image>covers/ds47.jpg</image>
<link>/pdfs/ds047.pdf</link>
<filesize>1369065</filesize>
<!--date></date-->
</schleuder>
<schleuder id="46">
<image>covers/ds46.jpg</image>
<link>/pdfs/ds046.pdf</link>
<filesize>1432054</filesize>
<!--date></date-->
</schleuder>
<schleuder id="45">
<image>covers/ds45.jpg</image>
<link>/pdfs/ds045.pdf</link>
<filesize>959569</filesize>
<!--date></date-->
</schleuder>
<schleuder id="44,5">
<image>covers/ds44,5.jpg</image>
<link>/pdfs/ds044,5.pdf</link>
<filesize>2245359</filesize>
<!--date></date-->
</schleuder>
<schleuder id="44">
<image>covers/ds44.jpg</image>
<link>/pdfs/ds044.pdf</link>
<filesize>934477</filesize>
<!--date></date-->
</schleuder>
<schleuder id="43">
<image>covers/ds43.jpg</image>
<link>/pdfs/ds043.pdf</link>
<filesize>1511021</filesize>
<!--date></date-->
</schleuder>
<schleuder id="42">
<image>covers/ds42.jpg</image>
<link>/pdfs/ds042.pdf</link>
<filesize>1008532</filesize>
<!--date>???, ?? Mar 1993 00:00 UT</date-->
</schleuder>
<schleuder id="41">
<image>covers/ds41.jpg</image>
<link>/pdfs/ds041.pdf</link>
<filesize>1772903</filesize>
<!--date>nlt 27.12.92: ???, ?? ??? 1992 00:00 UT</date-->
</schleuder>
<schleuder id="40">
<image>covers/ds40.jpg</image>
<link>/pdfs/ds040.pdf</link>
<filesize>724630</filesize>
<!--date>???, ?? ??? 1992 00:00 UT</date-->
</schleuder>
<schleuder id="39">
<image>covers/ds39.jpg</image>
<link>/pdfs/ds039.pdf</link>
<filesize>5660515</filesize>
<!--date>???, ?? ??? 1992 00:00 UT</date-->
</schleuder>
<schleuder id="38">
<image>covers/ds38.jpg</image>
<link>/pdfs/ds038.pdf</link>
<filesize>9309080</filesize>
<!--date>???, ?? Mar 1992 00:00 UT</date-->
</schleuder>
<schleuder id="37">
<image>covers/ds37.jpg</image>
<link>/pdfs/ds037.pdf</link>
<filesize>5955897</filesize>
<!--date>???, ?? Nov 1991 00:00 UT</date-->
</schleuder>
<schleuder id="36">
<image>covers/ds36.jpg</image>
<link>/pdfs/ds036.pdf</link>
<filesize>3988877</filesize>
<!--date>???, ?? Sep 1991 00:00 UT</date-->
</schleuder>
<schleuder id="35">
<image>covers/ds35.jpg</image>
<link>/pdfs/ds035.pdf</link>
<filesize>1132711</filesize>
<!--date>???, ?? Jun 1991 00:00 UT</date-->
</schleuder>
<schleuder id="34">
<image>covers/ds34.jpg</image>
<link>/pdfs/ds034.pdf</link>
<filesize>2377237</filesize>
<!--date>???, ?? Mar 1991 00:00 UT</date-->
</schleuder>
<schleuder id="33">
<image>covers/ds33.jpg</image>
<link>/pdfs/ds033.pdf</link>
<filesize>3594296</filesize>
<!--date>???, ?? Oct 1990 00:00 UT</date-->
</schleuder>
<schleuder id="32">
<image>covers/ds32.jpg</image>
<link>/pdfs/ds032.pdf</link>
<filesize>1007002</filesize>
<!--date>???, ?? Feb 1990 00:00 UT</date-->
</schleuder>
<schleuder id="31">
<image>covers/ds31.jpg</image>
<link>/pdfs/ds031.pdf</link>
<filesize>1686370</filesize>
<!--date>???, ?? Dec 1989 00:00 UT</date-->
</schleuder>
<schleuder id="30">
<image>covers/ds30.jpg</image>
<link>/pdfs/ds030.pdf</link>
<filesize>793690</filesize>
<!--date>net 8.9.89: ???, ?? Sep 1989 00:00 UT</date-->
</schleuder>
<schleuder id="28/29">
<image>covers/ds28-29.jpg</image>
<link>https://www.offiziere.ch/trust-us/ds/28/index.html</link>
<!--date>net 2.1.89: ???, ?? ??? 1989 00:00 UT</date-->
</schleuder>
<schleuder id="26/27">
<image>covers/ds26-27.jpg</image>
<link>/pdfs/ds2627.pdf</link>
<filesize>11978057</filesize>
<!--date>???, ?? Sep 1988 00:00 UT</date-->
</schleuder>
<schleuder id="25">
<image>covers/ds25.jpg</image>
<link>/pdfs/ds025.pdf</link>
<filesize>7984192</filesize>
<!--date>???, ?? Mar 1988 00:00 UT</date-->
</schleuder>
<schleuder id="24">
<image>covers/ds24.jpg</image>
<link>/pdfs/ds024.pdf</link>
<filesize>3317604</filesize>
<!--date>???, ?? Dec 1987 00:00 UT</date-->
</schleuder>
<schleuder id="23">
<image>covers/ds23.jpg</image>
<link>/pdfs/ds023.pdf</link>
<filesize>4669143</filesize>
<!--date>???, ?? Oct 1987 00:00 UT</date-->
</schleuder>
<schleuder id="22">
<image>covers/ds22.jpg</image>
<link>https://www.offiziere.ch/trust-us/ds/22/index.html</link>
<!--date>???, ?? Jul 1987 00:00 UT</date-->
</schleuder>
<schleuder id="21">
<image>covers/ds21.jpg</image>
<link>/pdfs/ds021.pdf</link>
<filesize>8305087</filesize>
<!--date>???, ?? Jun 1987 00:00 UT</date-->
</schleuder>
<schleuder id="20">
<image>covers/ds20.jpg</image>
<link>/pdfs/ds020.pdf</link>
<filesize>8998068</filesize>
<!--date>???, ?? ??? 1987 00:00 UT</date-->
</schleuder>
<schleuder id="19">
<image>covers/ds19.jpg</image>
<link>/pdfs/ds019.pdf</link>
<filesize>8295587</filesize>
<!--date>da steht echt 31.4.87 im Impressum: ???, 31 Apr 1987 00:00 UT</date-->
</schleuder>
<schleuder id="18">
<image>covers/ds18.jpg</image>
<link>/pdfs/ds018.pdf</link>
<filesize>10486554</filesize>
<!--date>???, ?? Feb 1987 00:00 UT</date-->
</schleuder>
<schleuder id="17">
<image>covers/ds17.jpg</image>
<link>/pdfs/ds017.pdf</link>
<filesize>5632452</filesize>
<!--date>???, ?? Dec 1986 00:00 UT</date-->
</schleuder>
<schleuder id="16">
<date>Thu, 11 Sep 1986 00:00 UT</date>
<image>covers/ds16.jpg</image>
<link>/pdfs/ds016.pdf</link>
<filesize>1177879</filesize>
<date>Thu, 11 Sep 1986 00:00 UT</date>
</schleuder>
<schleuder id="15">
<image>covers/ds15.jpg</image>
<link>/pdfs/ds015.pdf</link>
<filesize>1116319</filesize>
<!--date>???, ?? Mar 1986 00:00 UT</date-->
</schleuder>
<schleuder id="14">
<image>covers/ds14.jpg</image>
<link>/pdfs/ds014.pdf</link>
<filesize>629409</filesize>
<!--date>???, ?? Dec 1985 00:00 UT</date-->
</schleuder>
<schleuder id="13">
<image>covers/ds13.jpg</image>
<link>/pdfs/ds013.pdf</link>
<filesize>1400728</filesize>
<!--date>???, ?? Sep 1985 00:00 UT</date-->
</schleuder>
<schleuder id="11/12">
<image>covers/ds11-12.jpg</image>
<link>/pdfs/ds1112.pdf</link>
<filesize>652112</filesize>
<!--date></date-->
</schleuder>
<schleuder id="9/10">
<image>covers/ds9-10.jpg</image>
<link>/pdfs/ds0910.pdf</link>
<filesize>604829</filesize>
<!--date></date-->
</schleuder>
<schleuder id="8,5">
<image>covers/ds8,5.jpg</image>
<link>/alteszeug.html</link>
<!--date></date-->
</schleuder>
<schleuder id="8">
<image>covers/ds8.jpg</image>
<link>/pdfs/ds008.pdf</link>
<filesize>520716</filesize>
<!--date>net 13feb85: ???, ?? ??? 1985 00:00 UT</date-->
</schleuder>
<schleuder id="7">
<image>covers/ds7.jpg</image>
<link>/pdfs/ds007.pdf</link>
<filesize>159023</filesize>
<!--date>nlt 27dec84: ???, ?? Dec 1984 00:00 UT</date-->
</schleuder>
<schleuder id="5/6">
<image>covers/ds5-6.jpg</image>
<link>/pdfs/ds0506.pdf</link>
<filesize>995187</filesize>
<!--date>net oct84: ???, ?? ??? 1984 00:00 UT</date-->
</schleuder>
<schleuder id="4">
<date>Sun, 12 Aug 1984 00:00 UT</date>
<image>covers/ds4.jpg</image>
<link>/pdfs/ds004.pdf</link>
<filesize>3338710</filesize>
<date>Sun, 12 Aug 1984 00:00 UT</date>
</schleuder>
<schleuder id="3">
<date>Tue, 12 Jun 1984 00:00</date>
<image>covers/ds3.jpg</image>
<link>/pdfs/ds003.pdf</link>
<filesize>2638305</filesize>
<date>Tue, 12 Jun 1984 00:00</date>
</schleuder>
<schleuder id="2">
<image>covers/ds02.jpg</image>
<link>/pdfs/ds002.pdf</link>
<filesize>748189</filesize>
<!--date>???, ?? Apr 1984 00:00 UT</date-->
</schleuder>
<schleuder id="1">
<image>covers/ds1.jpg</image>
<link>https://www.offiziere.ch/trust-us/ds/01/index.html</link>
<!--date></date-->
</schleuder>
</schleudern>

101
gen.sh
View File

@ -22,8 +22,15 @@ assert_source () {
datafn="data.xml";
>&2 printf "assuming fallback '${datafn}'.\n";
}
test -f "$datafn" && { >&2 printf "from ${datafn} …\n"; exit 0; } || { >&2 printf "failed.\nfile '${datafn}' does not exist.\n"; exit 1; }
printf "$datafn"
err=0
while test "${err}" -lt 2; do
test -f "$datafn" 2>/dev/null && { >&2 printf "from ${datafn} …\n"; err=0; break; } || {
>&2 printf "failed.\nfile '${datafn}' does not exist.\n"
err=$(( $err + 1 ));
datafn="data.xml";
}
done
test $err -eq 0 && { printf "$datafn"; exit 0; } || exit $err
}
build () {
datafn="$1"
@ -77,8 +84,13 @@ newdataentry () {
dependencies="cat grep head cut rev date printf"
assert_tools ${dependencies}
#~ datafn=$(assert_source $1) && { shift; } || { >&2 printf "file '${datafn}' not found."; err=1; exit 1; }
datafn="data.xml"
datafn=$(assert_source $1) && {
if test "$datafn" = "$1" ; then
shift
fi
} || {
>&2 printf "file '${datafn}' not found."; err=1; exit 1;
}
err=0
customdir=$(pwd)
@ -91,59 +103,62 @@ newdataentry () {
# todo: switches
#~ for o in "$@"; do
# assigned parameters with equal sign
#~ on=$(printf $o|cut -d"=" -f1)
#~ ov=$(printf $o|cut -d"=" -f2-)
#~ case $on in
# custom data directory for availability test and filesize, default pwd
#~ c)
#~ customdir) ;;
#~ c|customdir) ;;
# custom issue, default next after top entry in ${datafn}
#~ i)
#~ issue) ;;
#~ i|issue) ;;
# custom timestamp, default: current time
#~ d)
#~ datetime) ;;
#~ d|datetime) ;;
# custom teaser xml-text, default: none
#~ t)
#~ teaser) ;;
#~ t|teaser) ;;
# custom fs for files
#~ p)
#~ pdffs) ;;
#~ e)
#~ epubfs) ;;
#~ p|pdffs) ;;
#~ e|epubfs) ;;
# help text
#~ h)
#~ help)
#~ h|help)
#~ *) ;;
#~ esac
# or without equal sign …
#~ case $o in
#~ c|customdir) ;;
#~ i|issue) ;;
#~ esac
#~ done
test -d $1 && {
customdir=$1; shift
test $# -gt 0 && test -d $1 && {
customdir=$1
>&2 printf "custom base directory for files such as jpg, pdf, epub: "${customdir}".\n\n"
shift
}
test "$1" = "help" && {
printf "prints a new data entry for a release of datenschleuder\n\n"
test $# -gt 0 && test "$1" = "help" && {
bold="\033[1m"
nobold="\033[0m"
printf "\n${bold}datenschleuder release xml snippet generation${nobold}\nprints a new data entry for a release of datenschleuder\n\n"
printf "release [options]\n\n"
printf "option\tdescription\n\n"
printf "${bold}option\t\tdescription${nobold}\n\n"
printf "directory\tcustom data directory for availability test and filesize, default pwd\n\n"
printf "number\tprint entry for release with custom number, default is the increment of the top entry in ${datafn}\n\n"
printf "date\tuse a unix timestamp for a custom date\n\n"
printf "teaser\tinclude teaser xml-message as last argument(s)\n\n"
printf "full example: './gen.sh release 99 1568505600 Die Ausgabe 99 ist fertig.'\n"
printf "number\t\tprint entry for release with custom number, default is the increment of the top entry in ${datafn}\n\n"
printf "date\t\tuse a unix timestamp for a custom date\n\n"
printf "teaser\t\tinclude teaser xml-message as last argument(s)\n\n"
printf "${bold}full example:${nobold} '\$./gen.sh release 99 1568505600 Die Ausgabe 99 ist fertig.'\n\n"
exit 1
}
2>/dev/null test $(( $1 * 1 )) -eq $1 && {
2>/dev/null test $# -gt 0 && test $(( $1 * 1 )) -eq $1 && {
newentry=$1; shift;
>&2 printf "custom issue number '${newentry}' for '${datafn}'.\n"
} || {
printf "next argument not a number. assuming issue based on top entry.\n"
}
2>/dev/null test $(( $1 * 1 )) -eq $1 && {
>&2 printf "custom datetime.\n\n"
2>/dev/null test $# -gt 0 && test $(( $1 * 1 )) -eq $1 && {
>&2 printf "custom datetime.\n"
datetime="$1"; shift;
} || { printf "next argument not a number. using actual system time.\n"; datetime=0; } # remaining arguments should be teaser xml-message.
printf "\nschleuder id=\"$newentry\">\n"
printf "\n<schleuder id=\"$newentry\">\n"
# todo: switch for dtg, integrate custom datetime input early
# or simply implement xslt for handling ISO and nothing else for input
# RFC-5322-Format without seconds and TZ
@ -174,7 +189,7 @@ newdataentry () {
printf "\t<image>"${cover}"</image>\n"
} || {
fs=$(stat -c %s ${customdir}"/"${ffn})
printf "\t<link filesize=\""${fs}"\">"${ffn}"</link>\n"
printf "\t<link filesize=\"%d\">%s</link>\n" "${fs}" "${ffn}"
}
} || {
mfl=${mfl}" "${ffn}"\n"
@ -182,21 +197,21 @@ newdataentry () {
err=3
}
done
#~ printf "\t<preface></preface>\n" # not used on server yet
#~ printf "\t<preface></preface>\n" # not used on server yet
test $# -eq 0 && { teaser="" ; } || {
teaser="$@";
printf "\t<teaser>"${teaser}"</teaser>\n"
printf "\t<teaser>${teaser}</teaser>\n"
}
printf "</schleuder>\n"
test "$teaser" = "" && { >&2 printf "\nmissing teaser message.\n"; }
test -e ${customdir}"/"$cover || { >&2 printf "\nmissing cover file: "${cover}"\n"; }
test $err -gt 0 && { >&2 printf "\nmissing files:\n"${mfl}"\n"; }
test -e ${customdir}"/"$cover || { >&2 printf "\nmissing cover file: ${cover}\n"; }
test $err -gt 0 && { >&2 printf "\nmissing files:\n${mfl}\n"; }
}
newinfoentry () {
>&2 printf "not implemented yet.\n\nwill be similar to 'release'.\n"
}
echo $# $@
#~ echo $# $@
if test $# -lt 1 ; then
printf "missing parameter.\n"
@ -205,13 +220,15 @@ else
# a mirror is useful for local testing with files
case "$1" in
build)
f=$(assert_source $@) && { shift; } || { exit 1; }
shift
f=$(assert_source $@) || { exit 1; }
build "${f}"
;;
#~ sortxml)
#~ f=$(assert_source $@) && { shift; } || { exit 1; }
#~ sortxml "${f}"
#~ ;;
sortxml)
shift
f=$(assert_source $@) || { exit 1; }
sortxml "${f}"
;;
mirror)
>&2 printf "downloading the website may take quite some time.\n"
mirror_website http://ds.ccc.de/