blob: 3983c9c0cae8ee2f8026f57ced373fc979deb0f0 (
plain) (
tree)
|
|
#!/usr/bin/env sh
set -e
#set -x
ARGUMENTS="$@"
TEMP=$(getopt -o 'a:b:d:hso:nv' -l 'attribute:,backend:,doctype:,help,no-header-footer,out-file:,section-numbers,safe,theme:,verbose,version' -n asciidoc -- "$@")
if [ $? -ne 0 ]; then
exit 1
fi
eval set -- "$TEMP"
unset TEMP
NO_HEADER_FOOTER=
OUT_DIR=
OUT_FILE=
SAFE=0
VERBOSE=0
while true; do
case "$1" in
'-a'|'--attribute')
echo 'The option -a|--attribute is currently ignored.' >&2
shift 2 ;;
'-b'|'--backend')
echo 'The option -b|--backend is currently ignored.' >&2
shift 2 ;;
'-d'|'--doctype')
echo 'The option -d|--doctype is currently ignored.' >&2
shift 2 ;;
'-h'|'--help')
echo 'TODO'
exit 0 ;;
'-s'|'--no-header-footer')
NO_HEADER_FOOTER=1
shift ;;
'-o'|'--out-file')
OUT_DIR=`dirname $2`
OUT_FILE=`basename ${2%.*}`
shift 2 ;;
'-n'|'--section-numbers')
echo 'The option -n|--section-numbers is currently ignored.' >&2
shift ;;
'--safe')
SAFE=1
shift ;;
'--theme')
echo 'The option --theme is currently ignored.' >&2
shift ;;
'-v'|'--verbose')
VERBOSE=1
shift ;;
'--version')
echo 'Asciideck compatibility script'
exit 0 ;;
'--')
shift
break ;;
*)
echo 'Unexpected error:' $1 >&2
exit 1 ;;
esac
done
IN_FILE=
case "$1" in
'')
echo 'No file name was provided. Use - for standard input.' >&2
exit 1 ;;
'-')
PARSE_CALL="asciideck:parse_stdin()" ;;
*)
IN_FILE=$1
PARSE_CALL="asciideck:parse_file(\"$IN_FILE\")" ;;
esac
if [ $IN_FILE -a -z $OUT_FILE ]; then
OUT_DIR=`dirname $IN_FILE`
OUT_FILE=`basename ${IN_FILE%.*}`
fi
# We need a dummy variable to not have to worry about commas
# so let's pass the original command line forward.
TRANSLATE_OPTS="#{ command_line => \"$0 $ARGUMENTS\""
if [ $OUT_FILE ]; then
TRANSLATE_OPTS="$TRANSLATE_OPTS, outdir => \"$OUT_DIR\", outfile => \"$OUT_FILE\""
fi
if [ $NO_HEADER_FOOTER ]; then
TRANSLATE_OPTS="$TRANSLATE_OPTS, no_header_footer => true"
fi
TRANSLATE_OPTS="$TRANSLATE_OPTS }"
<&0 erl +A0 -boot no_dot_erlang -noshell -pz `dirname $0`/../ebin -eval " \
case asciideck:to_html($PARSE_CALL, $TRANSLATE_OPTS) of \
ok -> ok; \
Output -> io:format(\"~ts~n\", [Output]) \
end, \
halt()"
|