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:
41
elmscript.sh
Executable file
41
elmscript.sh
Executable 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}
|
||||
Reference in New Issue
Block a user