diff --git a/backend/api.js b/backend/api.js
index f28585c..ddc16ad 100644
--- a/backend/api.js
+++ b/backend/api.js
@@ -296,7 +296,7 @@ export class Session {
if (code) {
cmdline = run;
if (compile) {
- cmdline = `( ${compile} ) && ( ${run} )`;
+ cmdline = `( ${compile} ) && ( set +e; ${run} )`;
}
} else if (repl) {
cmdline = repl;
diff --git a/langs/boo.yaml b/langs/boo.yaml
index 3176da8..a5a0e81 100644
--- a/langs/boo.yaml
+++ b/langs/boo.yaml
@@ -40,7 +40,8 @@ install:
ln -s /usr/local/lib/boo/booc /usr/local/lib/boo/booish "${pkg}/usr/local/bin/"
setup: |
- mkdir -p "$HOME/.local/share" && touch "$HOME/.local/share/booish_history"
+ mkdir -p "$HOME/.local/share"
+ touch "$HOME/.local/share/booish_history"
repl: |
booish
diff --git a/langs/ec.yaml b/langs/ec.yaml
index 14941ee..bf3850e 100644
--- a/langs/ec.yaml
+++ b/langs/ec.yaml
@@ -50,6 +50,11 @@ template: |
compile: |
export LD_LIBRARY_PATH=/usr/local/lib/ec
- ecp -c main.ec -o main.sym && ecc -c main.ec -o main.c && ecs -console main.sym main.imp -o main.main.ec && ecp -c main.main.ec -o main.main.sym && ecc -c main.main.ec -o main.main.c && clang main.c main.main.c -lecereCOM -o main
+ ecp -c main.ec -o main.sym
+ ecc -c main.ec -o main.c
+ ecs -console main.sym main.imp -o main.main.ec
+ ecp -c main.main.ec -o main.main.sym
+ ecc -c main.main.ec -o main.main.c
+ clang main.c main.main.c -lecereCOM -o main
run: |
./main
diff --git a/langs/elm.yaml b/langs/elm.yaml
index 736dc21..5cdf05e 100644
--- a/langs/elm.yaml
+++ b/langs/elm.yaml
@@ -32,7 +32,10 @@ template: |
output = "Hello, world!"
run: |
- cp /opt/elm/elm.json elm.json && run-elm Main.elm; elm repl
+ cp /opt/elm/elm.json elm.json || exit
+
+ run-elm Main.elm
+ elm repl
scope:
code: |
diff --git a/langs/emacslisp.yaml b/langs/emacslisp.yaml
index fc8b2ea..5efb536 100644
--- a/langs/emacslisp.yaml
+++ b/langs/emacslisp.yaml
@@ -35,4 +35,4 @@ pkg:
ls ~/.emacs.d/elpa | grep -- - | grep '^NAME-[0-9]' | while read pkg; do emacs -Q --batch --eval "(progn (require 'package) (push '(\"melpa" . "https://melpa.org/packages/\") package-archives) (package-initialize) (unless (ignore-errors (>= (length (directory-files \"~/.emacs.d/elpa/archives\")) 4)) (package-refresh-contents)) (call-interactively 'package-delete))" <<< "$pkg"; done
all: |
- set -o pipefail; (curl -sS https://elpa.gnu.org/packages/ | grep '
' | grep -Eo '[^>]+' | grep -Eo '^[^<]+' && curl -sS https://melpa.org/archive.json | jq -r 'keys | .[]') | sort | uniq
+ (curl -sS https://elpa.gnu.org/packages/ | grep ' | ' | grep -Eo '[^>]+' | grep -Eo '^[^<]+' && curl -sS https://melpa.org/archive.json | jq -r 'keys | .[]') | sort | uniq
diff --git a/langs/entropy.yaml b/langs/entropy.yaml
index 9441ab8..4f55653 100644
--- a/langs/entropy.yaml
+++ b/langs/entropy.yaml
@@ -22,7 +22,8 @@ template: |
]
compile: |
- mono /opt/entropy/entc.exe main.vge | grep -Ev 'WARNING:|Using default' > main.cs && mcs -lib:/opt/entropy -r:Rottytooth.Esolang.Entropy main.cs
+ mono /opt/entropy/entc.exe main.vge | grep -Ev 'WARNING:|Using default' > main.cs
+ mcs -lib:/opt/entropy -r:Rottytooth.Esolang.Entropy main.cs
run: |
MONO_PATH=/opt/entropy mono main.exe
hello: |
diff --git a/langs/flex.yaml b/langs/flex.yaml
index 611dc8b..803f81b 100644
--- a/langs/flex.yaml
+++ b/langs/flex.yaml
@@ -28,8 +28,10 @@ template: |
}
compile: |
- lex -o main.c main.lex && clang main.c -o main
+ lex -o main.c main.lex
+ clang main.c -o main
run: |
- echo 'Reading from stdin, ctrl+D to end input...' >&2 && ./main
+ echo 'Reading from stdin, ctrl+D to end input...' >&2
+ ./main
helloInput: |
EOF
diff --git a/langs/haskell.yaml b/langs/haskell.yaml
index 0904ed3..91c8be6 100644
--- a/langs/haskell.yaml
+++ b/langs/haskell.yaml
@@ -35,7 +35,8 @@ install:
popd
repl: |
- rm -f .ghci && ghci
+ rm -f .ghci
+ ghci
main: "Main.hs"
template: |
diff --git a/langs/hy.yaml b/langs/hy.yaml
index 51b0bb8..73e4eef 100644
--- a/langs/hy.yaml
+++ b/langs/hy.yaml
@@ -2,6 +2,8 @@ id: "hy"
name: "Hy"
install:
+ apt:
+ - python3-distutils
pip:
- hy
diff --git a/langs/j.yaml b/langs/j.yaml
index 1ca4758..5de2845 100644
--- a/langs/j.yaml
+++ b/langs/j.yaml
@@ -11,7 +11,8 @@ install:
- j.deb
repl: |
- echo 'ijconsole:' && ijconsole
+ echo 'ijconsole:'
+ ijconsole
main: "main.ijs"
template: |
diff --git a/langs/jq.yaml b/langs/jq.yaml
index f6fdc1d..30238ab 100644
--- a/langs/jq.yaml
+++ b/langs/jq.yaml
@@ -6,7 +6,10 @@ install:
- jq
repl: |
- echo 'Reading from stdin...' >&2 && while true; do jq .; done
+ echo 'Reading from stdin...' >&2
+ while true; do
+ jq .
+ done
input: |
{"foo":"bar"}
output: |
@@ -17,7 +20,10 @@ template: |
"Hello, world!"
run: |
- echo 'Reading from stdin...' >&2 && while true; do jq "$(< main.jq)"; done
+ echo 'Reading from stdin...' >&2
+ while true; do
+ jq "$(< main.jq)"
+ done
helloInput: |
{}
runReplOutput: |
diff --git a/langs/mariadb.yaml b/langs/mariadb.yaml
index 5be177b..aa37dfd 100644
--- a/langs/mariadb.yaml
+++ b/langs/mariadb.yaml
@@ -25,7 +25,13 @@ install:
chmod a=rx,u=rwxs "${pkg}/opt/mariadb/lib/plugin/auth_pam_tool_dir/auth_pam_tool"
repl: |
- rm -rf data && /opt/mariadb/scripts/mariadb-install-db --user="$(id -un)" && (/opt/mariadb/bin/mysqld --datadir="$PWD/data" --socket="$PWD/socket" --skip-networking &) && until [[ -e socket ]]; do sleep 0.01; done && mysql --socket=socket
+ rm -rf data
+ /opt/mariadb/scripts/mariadb-install-db --user="$(id -un)"
+ (/opt/mariadb/bin/mysqld --datadir="$PWD/data" --socket="$PWD/socket" --skip-networking &)
+ until [[ -e socket ]]; do
+ sleep 0.01
+ done
+ mysql --socket=socket
input: |
SELECT 123 * 234;
@@ -34,11 +40,19 @@ template: |
SELECT 'Hello, world!';
run: |
- rm -rf data && /opt/mariadb/scripts/mariadb-install-db --user="$(id -un)" && (/opt/mariadb/bin/mysqld --datadir="$PWD/data" --socket="$PWD/socket" --skip-networking &) && until [[ -e socket ]]; do sleep 0.01; done && (mysql --socket=socket < main.sql; mysql --socket=socket)
+ set -e
+ rm -rf data
+ /opt/mariadb/scripts/mariadb-install-db --user="$(id -un)"
+ (/opt/mariadb/bin/mysqld --datadir="$PWD/data" --socket="$PWD/socket" --skip-networking &)
+ until [[ -e socket ]]; do
+ sleep 0.01
+ done
+ (mysql --socket=socket < main.sql; mysql --socket=socket)
lsp:
start: |
- sleep 5 && sqls -config /opt/mariadb/sqls.yml
+ sleep 5
+ sqls -config /opt/mariadb/sqls.yml
skip:
- lsp
diff --git a/langs/mongodb.yaml b/langs/mongodb.yaml
index d029760..7b19d98 100644
--- a/langs/mongodb.yaml
+++ b/langs/mongodb.yaml
@@ -29,11 +29,30 @@ install:
- mongodb-server-core
repl: |
- while ps -u "$(id -un)" -o comm | grep -q mongod; do sleep 0.01; done && rm -rf data && mkdir data && (mongod --dbpath=data --unixSocketPrefix="$PWD" --bind_ip=, &) && until mongo --host "$PWD/mongodb-27017.sock" --eval ' ' &>/dev/null; do sleep 0.01; done && mongo --host "$PWD/mongodb-27017.sock"
+ while ps -u "$(id -un)" -o comm | grep -q mongod; do
+ sleep 0.01
+ done
+ rm -rf data
+ mkdir data
+ (mongod --dbpath=data --unixSocketPrefix="$PWD" --bind_ip=, &)
+ until mongo --host "$PWD/mongodb-27017.sock" --eval ' ' &>/dev/null; do
+ sleep 0.01
+ done
+ mongo --host "$PWD/mongodb-27017.sock"
main: "main.js"
template: |
print("Hello, world!")
run: |
- while ps -u "$(id -un)" -o comm | grep -q mongod; do sleep 0.01; done && rm -rf data && mkdir data && (mongod --dbpath=data --unixSocketPrefix="$PWD" --bind_ip=, &) && until mongo --host "$PWD/mongodb-27017.sock" --eval ' ' &>/dev/null; do sleep 0.01; done && mongo --host "$PWD/mongodb-27017.sock" --shell main.js
+ set -e
+ while ps -u "$(id -un)" -o comm | grep -q mongod; do
+ sleep 0.01
+ done
+ rm -rf data
+ mkdir data
+ (mongod --dbpath=data --unixSocketPrefix="$PWD" --bind_ip=, &)
+ until mongo --host "$PWD/mongodb-27017.sock" --eval ' ' &>/dev/null; do
+ sleep 0.01
+ done
+ mongo --host "$PWD/mongodb-27017.sock" --shell main.js
diff --git a/langs/mysql.yaml b/langs/mysql.yaml
index 7154010..f72cfe4 100644
--- a/langs/mysql.yaml
+++ b/langs/mysql.yaml
@@ -11,7 +11,13 @@ install:
- sqls
repl: |
- rm -rf data && mysqld -h "$PWD/data" --initialize-insecure && (mysqld -h "$PWD/data" --socket="$PWD/socket" --pid-file="$PWD/pid-file" --mysqlx=OFF --skip-networking &) && until [[ -e socket ]]; do sleep 0.01; done && mysql --socket="$PWD/socket" -u root
+ rm -rf data
+ mysqld -h "$PWD/data" --initialize-insecure
+ (mysqld -h "$PWD/data" --socket="$PWD/socket" --pid-file="$PWD/pid-file" --mysqlx=OFF --skip-networking &)
+ until [[ -e socket ]]; do
+ sleep 0.01
+ done
+ mysql --socket="$PWD/socket" -u root
input: |
SELECT 123 * 234;
@@ -20,7 +26,14 @@ template: |
SELECT 'Hello, world!';
run: |
- rm -rf data && mysqld -h "$PWD/data" --initialize-insecure && (mysqld -h "$PWD/data" --socket="$PWD/socket" --pid-file="$PWD/pid-file" --mysqlx=OFF --skip-networking &) && until [[ -e socket ]]; do sleep 0.01; done && (mysql --socket="$PWD/socket" -u root < main.sql; mysql --socket="$PWD/socket" -u root)
+ set -e
+ rm -rf data
+ mysqld -h "$PWD/data" --initialize-insecure
+ (mysqld -h "$PWD/data" --socket="$PWD/socket" --pid-file="$PWD/pid-file" --mysqlx=OFF --skip-networking &)
+ until [[ -e socket ]]; do
+ sleep 0.01
+ done
+ (mysql --socket="$PWD/socket" -u root < main.sql; mysql --socket="$PWD/socket" -u root)
lsp:
start: |
diff --git a/langs/postgresql.yaml b/langs/postgresql.yaml
index fe308b2..d73ffa5 100644
--- a/langs/postgresql.yaml
+++ b/langs/postgresql.yaml
@@ -15,7 +15,11 @@ install:
- sqls
repl: |
- rm -rf data && /usr/lib/postgresql/*/bin/initdb -D data && (echo "listen_addresses = ''" && echo "unix_socket_directories = '.'") >> data/postgresql.conf && /usr/lib/postgresql/*/bin/pg_ctl -D data -w start && psql -h "$PWD/data" postgres
+ rm -rf data
+ /usr/lib/postgresql/*/bin/initdb -D data
+ (echo "listen_addresses = ''"; echo "unix_socket_directories = '.'") >> data/postgresql.conf
+ /usr/lib/postgresql/*/bin/pg_ctl -D data -w start
+ psql -h "$PWD/data" postgres
input: |
SELECT 123 * 234;
@@ -24,7 +28,16 @@ template: |
SELECT 'Hello, world!';
run: |
- rm -rf data && /usr/lib/postgresql/*/bin/initdb -D data && (echo "listen_addresses = ''" && echo "unix_socket_directories = '.'") >> data/postgresql.conf && /usr/lib/postgresql/*/bin/pg_ctl -D data -w start && (psql -h "$PWD/data" postgres -f main.sql; psql -h "$PWD/data" postgres)
+ set -e
+
+ rm -rf data
+ /usr/lib/postgresql/*/bin/initdb -D data
+ (echo "listen_addresses = ''"; echo "unix_socket_directories = '.'") >> data/postgresql.conf
+ /usr/lib/postgresql/*/bin/pg_ctl -D data -w start
+
+ set +e
+ psql -h "$PWD/data" postgres -f main.sql
+ psql -h "$PWD/data" postgres
lsp:
start: |
diff --git a/langs/ratfor.yaml b/langs/ratfor.yaml
index 43a0897..18bd71b 100644
--- a/langs/ratfor.yaml
+++ b/langs/ratfor.yaml
@@ -14,6 +14,7 @@ template: |
END
compile: |
- ratfor main.r -o main.f && gfortran main.f -o main
+ ratfor main.r -o main.f
+ gfortran main.f -o main
run: |
./main
diff --git a/langs/unison.yaml b/langs/unison.yaml
index 329a323..bc0f008 100644
--- a/langs/unison.yaml
+++ b/langs/unison.yaml
@@ -23,7 +23,8 @@ install:
popd
setup: |
- shopt -s dotglob && cp -R /opt/unison/skel/* ./
+ shopt -s dotglob
+ cp -R /opt/unison/skel/* ./
repl: |
unison -codebase .
@@ -42,7 +43,8 @@ template: |
printLine "Hello, world!"
run: |
- echo "Type 'run main' to run the code." && unison -codebase .
+ echo "Type 'run main' to run the code."
+ unison -codebase .
helloInput: |
DELAY: 3
run main
diff --git a/langs/velato.yaml b/langs/velato.yaml
index f7d92f5..39d063a 100644
--- a/langs/velato.yaml
+++ b/langs/velato.yaml
@@ -237,7 +237,8 @@ template: |
BA 67 CR 7/10 TR 1 CH 16 End of track
compile: |
- asc2mid main.asc > main.mid && mono /opt/velato/Vlt.exe /s main.mid
+ asc2mid main.asc > main.mid
+ mono /opt/velato/Vlt.exe /s main.mid
run: |
mono main.exe
hello: |
diff --git a/langs/yorick.yaml b/langs/yorick.yaml
index 2a653a7..8cfb1fe 100644
--- a/langs/yorick.yaml
+++ b/langs/yorick.yaml
@@ -14,7 +14,8 @@ template: |
write, "Hello, world!"
run: |
- echo "Type '#include \"main.i\"' to run the code." && rlwrap yorick
+ echo "Type '#include \"main.i\"' to run the code."
+ rlwrap yorick
helloInput: |
#include "main.i"
|