1
0
mirror of https://codeberg.org/setop/elm-scripting synced 2025-11-08 21:49:57 +00:00
Files
elm-scripting/elmscript.sh
2025-10-15 13:44:19 +02:00

42 lines
678 B
Bash
Executable File

#!/bin/sh -eu
CMDD=$(dirname $(realpath 0))
w1="$(mktemp out_$$_1_XXXX.js)"
elm make --optimize --output=${w1} $1 1>/dev/null
w2="$(mktemp out_$$_XXXX.js)"
cat ${CMDD}/dom.js >> ${w2}
cat << EEE >> ${w2}
try {
EEE
cat ${w1} >> ${w2}
cat << EEE >> ${w2}
Elm[Object.keys(Elm)[0]].init({
node: document.getElementById("elm")
EEE
flags=$(grep -c 'main = $elm$browser$Browser$element' ${w1} || true)
if [ $flags -eq 1 ];
then
cat << EEE >> ${w2};
, flags: std.in.readAsString()
EEE
fi
cat << EEE >> ${w2}
});
document.children[0].dump();
} catch(e) {
throw e;
}
EEE
rm ${w1}
qjs --std ${w2}
# if qjs fails, output file will stay for debugging, else
rm ${w2}