1
0
mirror of https://codeberg.org/setop/elm-scripting synced 2025-11-08 21:49:57 +00:00

feat: can pass content as flags

This commit is contained in:
2025-10-15 12:19:11 +02:00
parent 0758e1e9b4
commit 5916566385
6 changed files with 182 additions and 62 deletions

41
elmscript.sh Executable file
View File

@@ -0,0 +1,41 @@
#!/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}