From a29329f71c8577de3a3dda54bd31dfaa993d2c2f Mon Sep 17 00:00:00 2001 From: Radon Rosborough Date: Sun, 17 Jan 2021 21:09:35 -0800 Subject: [PATCH] Install distutils for Hy, fix 'set -e' usage --- backend/api.js | 2 +- langs/boo.yaml | 3 ++- langs/ec.yaml | 7 ++++++- langs/elm.yaml | 5 ++++- langs/emacslisp.yaml | 2 +- langs/entropy.yaml | 3 ++- langs/flex.yaml | 6 ++++-- langs/haskell.yaml | 3 ++- langs/hy.yaml | 2 ++ langs/j.yaml | 3 ++- langs/jq.yaml | 10 ++++++++-- langs/mariadb.yaml | 20 +++++++++++++++++--- langs/mongodb.yaml | 23 +++++++++++++++++++++-- langs/mysql.yaml | 17 +++++++++++++++-- langs/postgresql.yaml | 17 +++++++++++++++-- langs/ratfor.yaml | 3 ++- langs/unison.yaml | 6 ++++-- langs/velato.yaml | 3 ++- langs/yorick.yaml | 3 ++- 19 files changed, 112 insertions(+), 26 deletions(-) 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"