Skip to content

Instantly share code, notes, and snippets.

@meoow
Created August 9, 2014 11:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save meoow/62a4a3b303543bed1a5d to your computer and use it in GitHub Desktop.
Save meoow/62a4a3b303543bed1a5d to your computer and use it in GitHub Desktop.
zimwriterfs shell wrapper
#!/bin/bash
# index icon dir file.zim
abspath(){ #{{{
local thePath
if [[ ! "$1" =~ ^/ ]];then
thePath="$PWD/$1"
else
thePath="$1"
fi
echo "$thePath"|(
IFS=/
read -a parr
declare -a outp
for i in "${parr[@]}";do
case "$i" in
''|.) continue ;;
..)
len=${#outp[@]}
if ((len==0));then
continue
else
unset outp[$((len-1))]
fi
;;
*)
len=${#outp[@]}
outp[$len]="$i"
;;
esac
done
echo /"${outp[*]}"
)
} #}}}
while [[ -n "$1" ]];do #{{{
case "$1" in
-p|--page) shift; index="$1" ;;
-p?*) index="${1/-p}" ;;
-i|--icon) shift; icon="$1" ;;
-i?*) icon="${1/-i}" ;;
-d|--dir) shift; dir="$1" ;;
-d?*) dir="${1/-d}" ;;
-o|--output) shift; output="$1" ;;
-o?*) output="${1/-o}" ;;
*) if [[ -z "$index" ]];then
index="$1"
elif [[ -z "$icon" ]];then
icon="$1"
elif [[ -z "$dir" ]];then
dir="$1"
elif [[ -z "$output" ]];then
output="$1"
fi
;;
esac
shift
done #}}}
dir="$(abspath "$dir")"
if [[ ! -d "$dir" ]];then
exit 1
fi
if [[ -f "$index" ]];then
index="$(abspath "$index")"
index="${index/$dir\/}"
fi
if [[ "$icon" == - ]];then #{{{
cat <<_EOF_|base64 -D -o "$dir/icon.png"
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAD8GlDQ1BJQ0MgcHJvZmlsZQAAOI2NVd1v21QUP4lvXKQWP6Cxjg4Vi69VU1u5GxqtxgZJk6XpQhq5zdgqpMl1bhpT1za2021Vn/YCbwz4A4CyBx6QeEIaDMT2su0BtElTQRXVJKQ9dNpAaJP2gqpwrq9Tu13GuJGvfznndz7v0TVAx1ea45hJGWDe8l01n5GPn5iWO1YhCc9BJ/RAp6Z7TrpcLgIuxoVH1sNfIcHeNwfa6/9zdVappwMknkJsVz19HvFpgJSpO64PIN5G+fAp30Hc8TziHS4miFhheJbjLMMzHB8POFPqKGKWi6TXtSriJcT9MzH5bAzzHIK1I08t6hq6zHpRdu2aYdJYuk9Q/881bzZa8Xrx6fLmJo/iu4/VXnfH1BB/rmu5ScQvI77m+BkmfxXxvcZcJY14L0DymZp7pML5yTcW61PvIN6JuGr4halQvmjNlCa4bXJ5zj6qhpxrujeKPYMXEd+q00KR5yNAlWZzrF+Ie+uNsdC/MO4tTOZafhbroyXuR3Df08bLiHsQf+ja6gTPWVimZl7l/oUrjl8OcxDWLbNU5D6JRL2gxkDu16fGuC054OMhclsyXTOOFEL+kmMGs4i5kfNuQ62EnBuam8tzP+Q+tSqhz9SuqpZlvR1EfBiOJTSgYMMM7jpYsAEyqJCHDL4dcFFTAwNMlFDUUpQYiadhDmXteeWAw3HEmA2s15k1RmnP4RHuhBybdBOF7MfnICmSQ2SYjIBM3iRvkcMki9IRcnDTthyLz2Ld2fTzPjTQK+Mdg8y5nkZfFO+se9LQr3/09xZr+5GcaSufeAfAww60mAPx+q8u/bAr8rFCLrx7s+vqEkw8qb+p26n11Aruq6m1iJH6PbWGv1VIY25mkNE8PkaQhxfLIF7DZXx80HD/A3l2jLclYs061xNpWCfoB6WHJTjbH0mV35Q/lRXlC+W8cndbl9t2SfhU+Fb4UfhO+F74GWThknBZ+Em4InwjXIyd1ePnY/Psg3pb1TJNu15TMKWMtFt6ScpKL0ivSMXIn9QtDUlj0h7U7N48t3i8eC0GnMC91dX2sTivgloDTgUVeEGHLTizbf5Da9JLhkhh29QOs1luMcScmBXTIIt7xRFxSBxnuJWfuAd1I7jntkyd/pgKaIwVr3MgmDo2q8x6IdB5QH162mcX7ajtnHGN2bov71OU1+U0fqqoXLD0wX5ZM005UHmySz3qLtDqILDvIL+iH6jB9y2x83ok898GOPQX3lk3Itl0A+BrD6D7tUjWh3fis58BXDigN9yF8M5PJH4B8Gr79/F/XRm8m241mw/wvur4BGDj42bzn+Vmc+NL9L8GcMn8F1kAcXiS7a1/AAAACXBIWXMAAAsSAAALEgHS3X78AAAAGklEQVRYhe3BAQEAAACCIP+vbkhAAQAAAO8GECAAAUcBoIgAAAAASUVORK5CYII=
_EOF_
icon=icon.png
else
if [[ -f "$icon" ]];then
icon="$(abspath "$icon")"
icon="${icon/$dir\/}"
fi
fi #}}}
if [[ ! "$output" =~ \.zim$ ]];then
output="$output".zim
fi
title="${output%.zim}"
des="${output%.zim}"
exec $(dirname "$0")/zimwriterfs --welcome="$index" --favicon="$icon" --language=eng --title="$title" --description="$des" --creator=meow --publisher=meow "$dir" "$output"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment