Implement persistent Memory.
[goaljobs.git] / goaljobs
index 93dd844..cc8d003 100755 (executable)
--- a/goaljobs
+++ b/goaljobs
@@ -104,6 +104,15 @@ if [ "$output" = "" ]; then
     output=`basename "$final" .ml`
 fi
 
+# Create a temporary 'main' file to handle command line args.
+main=$(mktemp --suffix=.ml /tmp/goaljobsmainXXXXXX)
+echo "let modules = [" > $main
+for module in "${modules[@]}"; do
+    echo "    \"$module\";" >> $main
+done
+echo "] ;;" >> $main
+echo "Goaljobs.init ()" >> $main
+
 # Either use installed package or if user selected --pkgdir then
 # use goaljobs from that directory.
 declare -a pkg
@@ -122,5 +131,7 @@ fi
 
 # Compile the input file(s).
 echo \
-ocamlfind $best "${passthru[@]}" "${pkg[@]}" "$@" -o "$output"
-ocamlfind $best "${passthru[@]}" "${pkg[@]}" "$@" -o "$output"
+ocamlfind $best "${passthru[@]}" "${pkg[@]}" "$@" $main -o "$output"
+ocamlfind $best "${passthru[@]}" "${pkg[@]}" "$@" $main -o "$output"
+
+rm -f $main