jw-pkg/scripts/convert-doc-to-wiki.sh

117 lines
1.7 KiB
Bash
Raw Normal View History

#!/bin/bash
cat_header()
{
cat <<-EOT
====== Dummy-Titel ======
----
===== Links =====
----
* {{$namespace:$n, Stand `date +'%d.%m.%Y'`}}
===== Backlinks =====
----
{{backlinks>.}}
===== Annotierte Version =====
----
EOT
}
strip()
{
sed "s/^ *//; s/ *$//" | grep .
}
field()
{
grep "| *$2 *\(|\|$\)" $files | grep "pdfwiki\|binary" | cut -d\| -f$1 | strip
}
cmd_name_extern_2_intern()
{
field 3 "$1"
}
cmd_name_intern_2_extern()
{
field 2 "$1"
}
cmd_uploads()
{
cat $files | grep "pdfwiki\|binary" | cut -d\| -f3 | strip
}
cmd_milk_dirs()
{
local dirs="$@"
for d in $dirs; do
ls $d/* 2>/dev/null | while read f; do
l=`basename "$f"`
n=`cmd_name_extern_2_intern "$l"`
[ "$n" ] || {
echo "ignoring unknown file \"$l\""
continue
}
[ -e "$n" ] && {
echo "ignoring existing file \"$l\""
continue
}
type=$(field 1 "$l")
echo type=$type
case $type in
pdfwiki)
t=`echo $n | sed 's/\.[^.]*$//'`
txt="$t.txt"
[ -e "$txt" ] && {
echo "ignoring existing file \"$txt\""
continue
}
cp "$f" "tmp-$n"
pdftotext "tmp-$n"
pdfimages -png -j tmp-$n $n
rm -f $n-*.pnm
cat_header "$l" "$n" > $txt.tmp
cat tmp-$txt >> $txt.tmp
mv $txt.tmp $txt
mv tmp-$n $n
rm -f tmp-$txt
;;
binary)
cp "$f" "$n"
;;
*)
echo "ignoring file with unknown extension: \"$f\""
;;
esac
done
done
}
# ------------------------------------------------ here we go
files=files.txt
namespace=files:doc:extern
eval set -- `getopt -o hn: -l namespace: -- "$@"`
while [ "$1" != -- ]; do
case $1 in
-n|--namespace)
namespace="$2"
shift
;;
-h)
usage 0;;
*)
usage 1;;
esac
shift
done
shift
cmd="${1/-/_}"
shift
eval cmd_$cmd "$@"