mirror of
https://codeberg.org/setop/elm-scripting
synced 2025-11-08 21:49:57 +00:00
42 lines
678 B
Bash
Executable File
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}
|