Add more error checking
This commit is contained in:
parent
097b981d58
commit
e9e6141baa
18
compile-r7rs
18
compile-r7rs
|
|
@ -2,7 +2,7 @@
|
||||||
# vi: ft=bash
|
# vi: ft=bash
|
||||||
set -eu
|
set -eu
|
||||||
if [ "${COMPILE_R7RS:-}" = "" ]; then
|
if [ "${COMPILE_R7RS:-}" = "" ]; then
|
||||||
echo "Environment variable COMPILE_R7RS is not set. Supported values:"
|
echo "COMPILE_R7RS not set, possible values:"
|
||||||
echo "capyscheme chezscheme chibi chicken cyclone foment gambit gauche guile ikarus ironscheme kawa larceny loko meevax mosh mit-scheme racket sagittarius skint stklos tr7 ypsilon"
|
echo "capyscheme chezscheme chibi chicken cyclone foment gambit gauche guile ikarus ironscheme kawa larceny loko meevax mosh mit-scheme racket sagittarius skint stklos tr7 ypsilon"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
@ -12,8 +12,8 @@ prepend_dirs=""
|
||||||
append_dirs=""
|
append_dirs=""
|
||||||
while :; do
|
while :; do
|
||||||
case ${1:-} in
|
case ${1:-} in
|
||||||
*.sps) input_file="$1"; rnrs=r6rs; shift ;;
|
*.sps) input_file="$1"; rnrs=R6RS; shift ;;
|
||||||
*.scm) input_file="$1"; rnrs=r7rs; shift ;;
|
*.scm) input_file="$1"; rnrs=R7RS; shift ;;
|
||||||
-o) output_file="$2"; shift; shift ;;
|
-o) output_file="$2"; shift; shift ;;
|
||||||
-D) echo "Warning: -D not supported, so \"$1 $2\" is ignored"; shift; shift ;;
|
-D) echo "Warning: -D not supported, so \"$1 $2\" is ignored"; shift; shift ;;
|
||||||
-I) case $COMPILE_R7RS in
|
-I) case $COMPILE_R7RS in
|
||||||
|
|
@ -44,17 +44,15 @@ append_dirs="${append_dirs#:}"
|
||||||
prepend_dirs="${prepend_dirs#,}"
|
prepend_dirs="${prepend_dirs#,}"
|
||||||
append_dirs="${append_dirs#,}"
|
append_dirs="${append_dirs#,}"
|
||||||
|
|
||||||
if [ "${input_file:-}" = "" ]; then echo "Error, no input file"; exit 1; fi
|
|
||||||
|
|
||||||
case ${input_file:-} in
|
case ${input_file:-} in
|
||||||
*.sps) output_file="${input_file%.sps}";;
|
*.sps) output_file="${input_file%.sps}";;
|
||||||
*.scm) output_file="${input_file%.scm}";;
|
*.scm) output_file="${input_file%.scm}";;
|
||||||
*) echo "Error, invalid input file";;
|
*) echo "Error, invalid input file"; exit 1;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
prefix="#!/usr/bin/env -S"
|
prefix="#!/usr/bin/env -S"
|
||||||
case $rnrs in
|
case $rnrs in
|
||||||
r6rs)
|
R6RS)
|
||||||
case $COMPILE_R7RS in
|
case $COMPILE_R7RS in
|
||||||
chezscheme) echo "$prefix scheme --libdirs $prepend_dirs:$append_dirs --program" >> "$output_file";;
|
chezscheme) echo "$prefix scheme --libdirs $prepend_dirs:$append_dirs --program" >> "$output_file";;
|
||||||
guile) printf "$prefix guile --r6rs $prepend_dirs $append_dirs\n!#\n" >> "$output_file";;
|
guile) printf "$prefix guile --r6rs $prepend_dirs $append_dirs\n!#\n" >> "$output_file";;
|
||||||
|
|
@ -67,9 +65,9 @@ case $rnrs in
|
||||||
racket) printf "\n#|\nexec racket -I scheme/init -l r6rs/run.rkt $prepend_dirs $append_dirs \$0 --\n|#\n" >> "$output_file";;
|
racket) printf "\n#|\nexec racket -I scheme/init -l r6rs/run.rkt $prepend_dirs $append_dirs \$0 --\n|#\n" >> "$output_file";;
|
||||||
sagittarius) echo "$prefix sash -r6 $prepend_dirs $append_dirs" >> "$output_file";;
|
sagittarius) echo "$prefix sash -r6 $prepend_dirs $append_dirs" >> "$output_file";;
|
||||||
ypsilon) echo "$prefix ypsilon $prepend_dirs $append_dirs --top-level-program" >> "$output_file";;
|
ypsilon) echo "$prefix ypsilon $prepend_dirs $append_dirs --top-level-program" >> "$output_file";;
|
||||||
*) echo "Unsupported implementation: $COMPILE_R7RS"; exit 1;;
|
*) echo "Unsupported implementation RNRS combination: $COMPILE_R7RS $rnrs"; exit 1;;
|
||||||
esac;;
|
esac;;
|
||||||
r7rs)
|
R7RS)
|
||||||
case $COMPILE_R7RS in
|
case $COMPILE_R7RS in
|
||||||
chicken) csc -o "$output_file" "$input_file";;
|
chicken) csc -o "$output_file" "$input_file";;
|
||||||
chibi) echo "$prefix chibi-scheme $prepend_dirs $append_dirs" >> "$output_file";;
|
chibi) echo "$prefix chibi-scheme $prepend_dirs $append_dirs" >> "$output_file";;
|
||||||
|
|
@ -91,7 +89,7 @@ case $rnrs in
|
||||||
stklos) echo "$prefix stklos $prepend_dirs $append_dirs" >> "$output_file";;
|
stklos) echo "$prefix stklos $prepend_dirs $append_dirs" >> "$output_file";;
|
||||||
tr7) echo "$prefix TR7_LIB_PATH=$prepend_dirs:$append_dirs tr7i -1" >> "$output_file";;
|
tr7) echo "$prefix TR7_LIB_PATH=$prepend_dirs:$append_dirs tr7i -1" >> "$output_file";;
|
||||||
ypsilon) echo "$prefix ypsilon $prepend_dirs $append_dirs --top-level-program" >> "$output_file";;
|
ypsilon) echo "$prefix ypsilon $prepend_dirs $append_dirs --top-level-program" >> "$output_file";;
|
||||||
*) echo "Unsupported implementation: $COMPILE_R7RS"; exit 1;;
|
*) echo "Unsupported implementation RNRS combination: $COMPILE_R7RS $rnrs"; exit 1;;
|
||||||
esac;;
|
esac;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue