From f7b0b435514d392929504bb5d2344967d770a568 Mon Sep 17 00:00:00 2001 From: Radon Rosborough Date: Mon, 11 Jan 2021 22:17:09 -0800 Subject: [PATCH] Almost all languages working in new system --- docker/packaging/install.bash | 30 +++++++--- docker/runtime/install.bash | 29 ++++++++-- langs/{아희.yaml => aheui.yaml} | 13 ++++- langs/ante.yaml | 3 - langs/antecards.yaml | 2 - langs/blc.yaml | 5 -- langs/brainf.yaml | 1 - langs/clean.yaml | 2 - langs/emacs.yaml | 4 +- langs/ezhil.yaml | 29 ++++++++++ langs/false.yaml | 2 - langs/{><>.yaml => fishlang.yaml} | 6 +- langs/golfscript.yaml | 2 - langs/grass.yaml | 2 - langs/idris.yaml | 1 - langs/lazyk.yaml | 3 - langs/lolcode.yaml | 1 - langs/malbolge.yaml | 3 - langs/oberon.yaml | 1 - langs/objectivec++.yaml | 1 - langs/objectivec.yaml | 1 - langs/qalb.yaml | 59 +++++++++++++++++++ langs/rapira.yaml | 24 ++++++++ langs/sagemath.yaml | 94 ++++++++++++++++++++++++------- langs/slick.yaml | 19 ++++++- langs/snobol.yaml | 11 ++++ langs/sqlite.yaml | 2 + langs/subleq.yaml | 10 ++++ langs/swift.yaml | 9 +++ langs/tabloid.yaml | 34 ++++++++++- langs/teco.yaml | 23 ++++++++ langs/tex.yaml | 18 +++++- langs/thue.yaml | 11 ++++ langs/toml.yaml | 4 ++ langs/unison.yaml | 21 ++++++- langs/unlambda.yaml | 26 +++++++++ langs/velato.yaml | 14 +++++ langs/vim.yaml | 4 +- langs/visualbasic.yaml | 1 + langs/whitespace.yaml | 2 +- langs/x86.yaml | 4 -- langs/рапира.yaml | 19 ------- langs/قلب.yaml | 24 -------- langs/எழில்.yaml | 19 ------- tools/generate-build-script.js | 8 ++- 45 files changed, 456 insertions(+), 145 deletions(-) rename langs/{아희.yaml => aheui.yaml} (68%) create mode 100644 langs/ezhil.yaml rename langs/{><>.yaml => fishlang.yaml} (90%) create mode 100644 langs/qalb.yaml create mode 100644 langs/rapira.yaml delete mode 100644 langs/рапира.yaml delete mode 100644 langs/قلب.yaml delete mode 100644 langs/எழில்.yaml diff --git a/docker/packaging/install.bash b/docker/packaging/install.bash index 982f791..7c4379e 100755 --- a/docker/packaging/install.bash +++ b/docker/packaging/install.bash @@ -39,28 +39,42 @@ EOF packages=" +# compilation tools +clang +g++ +gcc +make + +# base languages +nodejs +ocaml +perl +python3 +ruby + +# package managers +opam +python3-pip +yarn + +# packaging tools apt-file dctrl-tools fakeroot +unzip + +# basic utilities git jq less -make man moreutils -nodejs -opam -perl -python3-pip ripgrep -ruby strace sudo tmux tree -unzip vim -yarn " diff --git a/docker/runtime/install.bash b/docker/runtime/install.bash index b05a953..dd84f32 100755 --- a/docker/runtime/install.bash +++ b/docker/runtime/install.bash @@ -92,21 +92,40 @@ libicu="$(grep-aptavail -wF Package 'libicu[0-9]+' -s Package -n | head -n1)" packages=" -apt-file -less +# compilation tools clang +g++ +gcc +make + +# base languages +nodejs +ocaml +perl +python3 +ruby + +# project tools +yarn + +# packaging tools +apt-file +dctrl-tools + +# basic utilities +less git jq -${libicu} make man -nodejs ripgrep strace sudo tmux vim -yarn + +# shared dependencies +${libicu} " diff --git a/langs/아희.yaml b/langs/aheui.yaml similarity index 68% rename from langs/아희.yaml rename to langs/aheui.yaml index 6d40dbd..2abf7ba 100644 --- a/langs/아희.yaml +++ b/langs/aheui.yaml @@ -1,4 +1,4 @@ -id: "아희" +id: "aheui" aliases: - "aheui" - "aheuis" @@ -11,8 +11,19 @@ aliases: - "rsaheui" - "as3aheui" - "raheui" + - "아희" name: "아희" +install: + manual: | + install -d "${pkg}/usr/local/bin" + + git clone https://github.com/aheui/caheui.git + pushd caheui + make + cp aheui "${pkg}/usr/local/bin/" + popd + main: "main.aheui" template: | 밤밣따빠밣밟따뿌 diff --git a/langs/ante.yaml b/langs/ante.yaml index b52c279..2f34309 100644 --- a/langs/ante.yaml +++ b/langs/ante.yaml @@ -7,7 +7,6 @@ install: prepare: apt: - cargo - - clang - cmake - libssl-dev - pkg-config @@ -20,8 +19,6 @@ install: # error: unrecognized command-line option ‘-Wnewline-eof’. CC=/usr/bin/clang CXX=/usr/bin/clang++ llvmenv build-entry -G Makefile -j$(nproc) 10.0.0 llvmenv global 10.0.0 - apt: - - gcc manual: | git clone https://github.com/jfecher/ante.git pushd ante diff --git a/langs/antecards.yaml b/langs/antecards.yaml index ce28104..647ac6d 100644 --- a/langs/antecards.yaml +++ b/langs/antecards.yaml @@ -2,8 +2,6 @@ id: "antecards" name: "Ante (Cards)" install: - apt: - - ruby manual: | wget https://github.com/michaeldv/ante/raw/master/ante.rb chmod +x ante.rb diff --git a/langs/blc.yaml b/langs/blc.yaml index 5818e78..1a3e31b 100644 --- a/langs/blc.yaml +++ b/langs/blc.yaml @@ -26,11 +26,6 @@ info: usage: [] install: - prepare: - apt: - - clang - apt: - - python3 scripts: binary-to-text: | #!/usr/bin/env python3 diff --git a/langs/brainf.yaml b/langs/brainf.yaml index 4f4bd40..c949292 100644 --- a/langs/brainf.yaml +++ b/langs/brainf.yaml @@ -27,7 +27,6 @@ info: install: apt: - beef - - python3 scripts: brainf: | #!/usr/bin/env python3 diff --git a/langs/clean.yaml b/langs/clean.yaml index 8980afc..028ac23 100644 --- a/langs/clean.yaml +++ b/langs/clean.yaml @@ -27,8 +27,6 @@ info: usage: [] install: - apt: - - gcc manual: | install -d "${pkg}/opt/clean" install -d "${pkg}/usr/local/bin" diff --git a/langs/emacs.yaml b/langs/emacs.yaml index 5975380..fc8b2ea 100644 --- a/langs/emacs.yaml +++ b/langs/emacs.yaml @@ -1,7 +1,7 @@ -id: "emacs" +id: "emacslisp" aliases: - - "emacslisp" - "elisp" + - "emacs" - "gnuemacs" - "xemacs" - "ielm" diff --git a/langs/ezhil.yaml b/langs/ezhil.yaml new file mode 100644 index 0000000..04c6243 --- /dev/null +++ b/langs/ezhil.yaml @@ -0,0 +1,29 @@ +id: "ezhil" +aliases: + - "ezhili" + - "ezhuthi" + - "tamil" + - "எழில்" +name: "எழில்" + +install: + manual: | + install -d "${pkg}/opt/ezhil" + install -d "${pkg}/usr/local/bin" + + wget https://github.com/raxod502/riju-cdn/releases/download/ezhil-2017.08.19/ezhil.tar.gz + tar -xf ezhil.tar.gz -C "${pkg}/opt/ezhil" --strip-components=2 + cp "${pkg}/opt/ezhil/ezhili" "${pkg}/opt/ezhil/ezhuthi/" + ln -s /opt/ezhil/ezhuthi/ezhili "${pkg}/usr/local/bin/" + +repl: | + ezhili + +main: "main.n" +template: | + பதிப்பி "வணக்கம், உலகமே!" + +run: | + ezhili main.n; ezhili +hello: | + வணக்கம், உலகமே! diff --git a/langs/false.yaml b/langs/false.yaml index dc0f23c..db3c9ba 100644 --- a/langs/false.yaml +++ b/langs/false.yaml @@ -4,8 +4,6 @@ aliases: name: "FALSE" install: - apt: - - ruby manual: | install -d "${pkg}/usr/local/bin" diff --git a/langs/><>.yaml b/langs/fishlang.yaml similarity index 90% rename from langs/><>.yaml rename to langs/fishlang.yaml index 58183d0..144e2d6 100644 --- a/langs/><>.yaml +++ b/langs/fishlang.yaml @@ -1,6 +1,6 @@ -id: "><>" +id: "fishlang" aliases: - - "fishlang" + - "><>" name: "><>" install: @@ -9,7 +9,7 @@ install: sed -i 's:^#!.*:#!/usr/bin/env python3:' fish.py chmod +x fish.py install -d "${pkg}/usr/local/bin" - mv fish.py "${pkg}/usr/local/bin/fish-lang" + cp fish.py "${pkg}/usr/local/bin/fish-lang" info: year: 2009 diff --git a/langs/golfscript.yaml b/langs/golfscript.yaml index cd8072b..b7c5a9d 100644 --- a/langs/golfscript.yaml +++ b/langs/golfscript.yaml @@ -4,8 +4,6 @@ aliases: name: "GolfScript" install: - apt: - - ruby manual: | install -d "${pkg}/usr/local/bin" diff --git a/langs/grass.yaml b/langs/grass.yaml index 0548322..3a48493 100644 --- a/langs/grass.yaml +++ b/langs/grass.yaml @@ -2,8 +2,6 @@ id: "grass" name: "Grass" install: - apt: - - ruby manual: | install -d "${pkg}/usr/local/bin" diff --git a/langs/idris.yaml b/langs/idris.yaml index c359dac..bd25d29 100644 --- a/langs/idris.yaml +++ b/langs/idris.yaml @@ -8,7 +8,6 @@ install: prepare: apt: - chezscheme - - gcc apt: - chezscheme manual: | diff --git a/langs/lazyk.yaml b/langs/lazyk.yaml index c605c56..b952f74 100644 --- a/langs/lazyk.yaml +++ b/langs/lazyk.yaml @@ -2,9 +2,6 @@ id: "lazyk" name: "Lazy K" install: - prepare: - apt: - - gcc manual: | install -d "${pkg}/usr/local/bin" diff --git a/langs/lolcode.yaml b/langs/lolcode.yaml index 61a2736..aff6bac 100644 --- a/langs/lolcode.yaml +++ b/langs/lolcode.yaml @@ -8,7 +8,6 @@ install: prepare: apt: - cmake - - python3 manual: | git clone https://github.com/justinmeza/lci.git pushd lci diff --git a/langs/malbolge.yaml b/langs/malbolge.yaml index e12cf45..30e1654 100644 --- a/langs/malbolge.yaml +++ b/langs/malbolge.yaml @@ -4,9 +4,6 @@ aliases: name: "Malbolge" install: - prepare: - apt: - - clang manual: | install -d "${pkg}/usr/local/bin" diff --git a/langs/oberon.yaml b/langs/oberon.yaml index 0f33ad1..0c5e864 100644 --- a/langs/oberon.yaml +++ b/langs/oberon.yaml @@ -6,7 +6,6 @@ name: "Oberon" install: prepare: apt: - - clang - libgc-dev apt: - libgc-dev diff --git a/langs/objectivec++.yaml b/langs/objectivec++.yaml index 8b128b9..8ce8a7d 100644 --- a/langs/objectivec++.yaml +++ b/langs/objectivec++.yaml @@ -7,7 +7,6 @@ name: "Objective-C++" install: apt: - - gcc - gnustep-devel - gobjc++ - clang-format diff --git a/langs/objectivec.yaml b/langs/objectivec.yaml index 82ed99f..f4f6002 100644 --- a/langs/objectivec.yaml +++ b/langs/objectivec.yaml @@ -7,7 +7,6 @@ monacoLang: objective-c install: apt: - - gcc - gnustep-devel - clang-format - clangd diff --git a/langs/qalb.yaml b/langs/qalb.yaml new file mode 100644 index 0000000..611d24e --- /dev/null +++ b/langs/qalb.yaml @@ -0,0 +1,59 @@ +id: "qalb" +aliases: + - "قلب" +name: "قلب" + +install: + scripts: + qalb: | + #!/usr/bin/env node + + const fs = require("fs"); + const repl = require("repl"); + + const args = process.argv.slice(2); + if (args.length > 1) { + console.error("usage: repl.js [FILE]"); + process.exit(1); + } + + const program = args.length === 1 ? fs.readFileSync(args[0], "utf-8") : null; + + eval(fs.readFileSync("/opt/qalb/qlb.js", "utf-8")); + eval(fs.readFileSync("/opt/qalb/parser.js", "utf-8")); + eval(fs.readFileSync("/opt/qalb/primitives.js", "utf-8")); + + Qlb.init({console}); + + if (program !== null) { + Qlb.execute(program); + } + + repl.start({prompt: "قلب> ", eval: (cmd, context, filename, callback) => callback(null, Qlb.execute(cmd))}); + manual: | + install -d "${pkg}/opt/qalb" + + git clone https://github.com/nasser/---.git qalb + pushd qalb + cp public/qlb/*.js "${pkg}/opt/qalb/" + popd + +repl: | + qalb +input: | + (ضرب ١٢٣ ٢٣٤) + +main: "main.qalb" +template: | + (قول "مرحبا يا عالم") + +run: | + qalb main.qalb +hello: | + مرحبا يا عالم + +scope: + code: | + (حدد خ (ضرب ١٢٣ ٢٣٤)) + input: | + خ diff --git a/langs/rapira.yaml b/langs/rapira.yaml new file mode 100644 index 0000000..efccac4 --- /dev/null +++ b/langs/rapira.yaml @@ -0,0 +1,24 @@ +id: "rapira" +aliases: + - "rap" + - "rerap" + - "rerap2" + - "рапира" +name: "Рапира" + +install: + manual: | + install -d "${pkg}/usr/local/bin" + + git clone https://github.com/freeduke33/rerap2.git + pushd rerap2 + make + cp rapira "${pkg}/usr/local/bin/" + popd + +main: "main.rap" +template: | + вывод: "Hello, world!" + +run: | + rapira main.rap diff --git a/langs/sagemath.yaml b/langs/sagemath.yaml index e943b69..0111811 100644 --- a/langs/sagemath.yaml +++ b/langs/sagemath.yaml @@ -4,29 +4,81 @@ aliases: name: "SageMath" install: + prepare: + apt: + # This list was produced by running ./configure and seeing what + # packages it told me to install. + - cmake + - coinor-cbc + - coinor-libcbc-dev + - curl + - fflas-ffpack + - flintqs + - gfan + - glpk-utils + - lcalc + - libboost-dev + - libbraiding-dev + - libcdd-dev + - libcdd-tools + - libcurl4-openssl-dev + - libfile-slurp-perl + - libfreetype6-dev + - libgd-dev + - libgiac-dev + - libgivaro-dev + - libglpk-dev + - libgsl-dev + - libiml-dev + - libisl-dev + - libjson-perl + - liblfunction-dev + - liblrcalc-dev + - libm4rie-dev + - libmongodb-perl + - libmpfi-dev + - libnauty-dev + - libpcre3-dev + - libperl-dev + - libplanarity-dev + - libppl-dev + - librw-dev + - libssl-dev + - libsuitesparse-dev + - libsvg-perl + - libsymmetrica2-dev + - libterm-readkey-perl + - libterm-readline-gnu-perl + - libterm-readline-gnu-perl + - libxml-libxslt-perl + - libxml-writer-perl + - libxml2-dev + - libzmq3-dev + - libzn-poly-dev + - nauty + - ninja-build + - openssl + - palp + - pandoc + - pari-gp2c + - planarity + - ppl-dev + - r-base-dev + - r-cran-lattice + - sympow + - tachyon + - xcas + - yasm manual: | - sudo tee -a /etc/apt/sources.list.d/focal.list >/dev/null < console.log(s.toString().toUpperCase() + "!") }; + const env = new lang.Environment(runtime); + env.run(ast); + manual: | + install -d "${pkg}/opt/tabloid" + + pushd "${pkg}/opt/tabloid" + wget https://github.com/thesephist/tabloid/raw/master/static/js/lang.js + cat <<"EOF" >> lang.js + module.exports = { tokenize, Parser, Environment }; + EOF + popd + main: "main.tabloid" template: | YOU WON'T WANT TO MISS "Hello, world" PLEASE LIKE AND SUBSCRIBE run: | - node /opt/tabloid/run.js main.tabloid + tabloid main.tabloid hello: | HELLO, WORLD! diff --git a/langs/teco.yaml b/langs/teco.yaml index 6c3ff0e..3c827db 100644 --- a/langs/teco.yaml +++ b/langs/teco.yaml @@ -3,6 +3,29 @@ aliases: - "mung" name: "TECO" +install: + scripts: + teco-encode: | + #!/usr/bin/env -S python3 -u + + import re + import sys + + for line in sys.stdin: + line = re.sub(r"\^(.)", lambda m: chr(ord(m.group(1)) ^ 0b1000000), line) + line = line.replace("$", chr(27)) + print(line, end="") + manual: | + install -d "${pkg}/usr/local/bin" + + git clone https://github.com/blakemcbride/TECOC.git + pushd TECOC/src + make -f makefile.linux + cp tecoc "${pkg}/usr/local/bin/tecoc" + ln -s /usr/local/bin/tecoc "${pkg}/usr/local/bin/teco" + ln -s /usr/local/bin/tecoc "${pkg}/usr/local/bin/mung" + popd + repl: | teco input: "123*234=\x1b\x1b" diff --git a/langs/tex.yaml b/langs/tex.yaml index 0d9b547..98bb873 100644 --- a/langs/tex.yaml +++ b/langs/tex.yaml @@ -8,10 +8,26 @@ name: "TeX" install: prepare: apt: + # Lua 5.4 is the most recent version but seemingly it's not + # supported by luarocks. + - lua5.3 + - liblua5.3 - luarocks - - $(grep-aptavail -wF Package "liblua[0-9.]+-dev" -a -XF Version "$(grep-aptavail -XF Provides lua -s Version -n | sort -Vr | head -n1)" -s Package -n | head -n1) apt: + - lua5.3 - texlive-binaries + manual: | + install -d "${pkg}/usr/local/bin" + + luarocks --tree="${pkg}/opt/digestif" install digestif + + cat < "${pkg}/usr/local/bin/digestif" + #!/usr/bin/env bash + + $(luarocks --tree=/opt/digestif path) + exec /opt/digestif/bin/digestif "\$@" + EOF + chmod +x "${pkg}/usr/local/bin/digestif" repl: | tex diff --git a/langs/thue.yaml b/langs/thue.yaml index a69316f..077e70a 100644 --- a/langs/thue.yaml +++ b/langs/thue.yaml @@ -1,6 +1,17 @@ id: "thue" name: "Thue" +install: + manual: | + install -d "${pkg}/usr/local/bin" + + wget "$(curl -sSL https://catseye.tc/distribution/Thue_distribution | grep -Eo 'https://catseye.tc/distfiles/thue-[^"]+\.zip' | head -n1)" -O thue.zip + unzip thue.zip + pushd thue-* + ./build.sh + cp bin/thue "${pkg}/usr/local/bin/" + popd + main: "main.thue" template: | a::=~Hello, world! diff --git a/langs/toml.yaml b/langs/toml.yaml index c3e246a..a0f4db2 100644 --- a/langs/toml.yaml +++ b/langs/toml.yaml @@ -3,6 +3,10 @@ aliases: - "tom" name: "TOML" +install: + riju: + - yj + main: "main.toml" template: | output = "Hello, world!" diff --git a/langs/unison.yaml b/langs/unison.yaml index bad82ab..329a323 100644 --- a/langs/unison.yaml +++ b/langs/unison.yaml @@ -3,8 +3,27 @@ aliases: - "ucm" name: "Unison" +install: + prepare: + apt: + - haskell-stack + manual: | + mkdir -p "${pkg}/opt/unison/skel" + install -d "${pkg}/usr/local/bin" + + git clone https://github.com/unisonweb/unison.git + pushd unison + stack build + cp "$(stack exec which unison)" "${pkg}/usr/local/bin/" + popd + + pushd "${pkg}/opt/unison/skel" + "${pkg}/usr/local/bin/unison" -codebase . init + LESS="+q" "${pkg}/usr/local/bin/unison" -codebase . <<< 'pull https://github.com/unisonweb/base:.trunk .base' + popd + setup: | - shopt -s dotglob && cp -R /opt/unison/project-template/* ./ + shopt -s dotglob && cp -R /opt/unison/skel/* ./ repl: | unison -codebase . diff --git a/langs/unlambda.yaml b/langs/unlambda.yaml index 6b552d1..0c6c301 100644 --- a/langs/unlambda.yaml +++ b/langs/unlambda.yaml @@ -6,6 +6,32 @@ name: "Unlambda" install: apt: - unlambda + scripts: + unlambda-repl: | + #!/usr/bin/env python3 + import argparse + import readline + import subprocess + + parser = argparse.ArgumentParser() + parser.add_argument("file", nargs="?") + args = parser.parse_args() + + if args.file: + with open(args.file) as f: + subprocess.run(["unlambda"], input=f.read(), encoding="utf-8") + while True: + try: + code = input("λ> ") + except KeyboardInterrupt: + print("^C") + continue + except EOFError: + print("^D") + break + if not code: + continue + subprocess.run(["unlambda"], input=code, encoding="utf-8") repl: | unlambda-repl diff --git a/langs/velato.yaml b/langs/velato.yaml index 71123d0..f7d92f5 100644 --- a/langs/velato.yaml +++ b/langs/velato.yaml @@ -3,6 +3,20 @@ aliases: - "vlt" name: "Velato" +install: + apt: + - mono-runtime + manual: | + install -d "${pkg}/opt/velato" + install -d "${pkg}/usr/local/bin" + + file="$(curl -fsSL http://velato.net/ | grep -Eo 'Velato[0-9_]+.zip')" + wget "http://velato.net/Content/Velato/${file}" -O velato.zip + unzip -d "${pkg}/opt/velato" velato.zip + + wget http://www.archduke.org/midi/asc2mid.c + clang asc2mid.c -o "${pkg}/usr/local/bin/asc2mid" + main: "main.asc" template: | format=1 tracks=2 division=2880 diff --git a/langs/vim.yaml b/langs/vim.yaml index 4030fb2..28d09da 100644 --- a/langs/vim.yaml +++ b/langs/vim.yaml @@ -1,7 +1,7 @@ -id: "vim" +id: "vimscript" aliases: + - "vim" - "viml" - - "vimscript" name: "Vimscript" install: diff --git a/langs/visualbasic.yaml b/langs/visualbasic.yaml index 72a4f3d..9d8b19e 100644 --- a/langs/visualbasic.yaml +++ b/langs/visualbasic.yaml @@ -10,6 +10,7 @@ monacoLang: vb install: apt: - mono-vbnc + - mono-runtime main: "main.vb" template: | diff --git a/langs/whitespace.yaml b/langs/whitespace.yaml index 0cd42d9..996e242 100644 --- a/langs/whitespace.yaml +++ b/langs/whitespace.yaml @@ -8,7 +8,7 @@ install: - whitespace main: "main.ws" -template: "Hello, world \t \t \n\t\n \t\t \t \t\n\t\n \t\t \t\t \n\t\n \t\t \t\t \n\t\n \t\t \t\t\t\t\n\t\n \t \t\t \n\t\n \t \n\t\n \t\t\t \t\t\t\n\t\n \t\t \t\t\t\t\n\t\n \t\t\t \t \n\t\n \t\t \t\t \n\t\n \t\t \t \n\t\n \n\n\n" +template: "Hello, world \t \t \n\t\n \t\t \t \t\n\t\n \t\t \t\t \n\t\n \t\t \t\t \n\t\n \t\t \t\t\t\t\n\t\n \t \t\t \n\t\n \t \n\t\n \t\t\t \t\t\t\n\t\n \t\t \t\t\t\t\n\t\n \t\t\t \t \n\t\n \t\t \t\t \n\t\n \t\t \t \n\t\n \n\n" run: | whitespace main.ws diff --git a/langs/x86.yaml b/langs/x86.yaml index 9e8e3b1..240c5f8 100644 --- a/langs/x86.yaml +++ b/langs/x86.yaml @@ -6,10 +6,6 @@ aliases: - "x86-64" name: "x86" -install: - apt: - - clang - main: "main.S" template: |2 .text diff --git a/langs/рапира.yaml b/langs/рапира.yaml deleted file mode 100644 index 94d052c..0000000 --- a/langs/рапира.yaml +++ /dev/null @@ -1,19 +0,0 @@ -id: "рапира" -aliases: - - "rap" - - "rerap" - - "rerap2" - - "rapira" -name: "Рапира" - -install: - prepare: - apt: - - clang - -main: "main.rap" -template: | - вывод: "Hello, world!" - -run: | - rapira main.rap diff --git a/langs/قلب.yaml b/langs/قلب.yaml deleted file mode 100644 index 2363b0d..0000000 --- a/langs/قلب.yaml +++ /dev/null @@ -1,24 +0,0 @@ -id: "قلب" -aliases: - - "qalb" -name: "قلب" - -repl: | - node /opt/qalb/repl.js -input: | - (ضرب ١٢٣ ٢٣٤) - -main: "main.qalb" -template: | - (قول "مرحبا يا عالم") - -run: | - node /opt/qalb/repl.js main.qalb -hello: | - مرحبا يا عالم - -scope: - code: | - (حدد خ (ضرب ١٢٣ ٢٣٤)) - input: | - خ diff --git a/langs/எழில்.yaml b/langs/எழில்.yaml deleted file mode 100644 index 3844533..0000000 --- a/langs/எழில்.yaml +++ /dev/null @@ -1,19 +0,0 @@ -id: "எழில்" -aliases: - - "ezhil" - - "ezhili" - - "ezhuthi" - - "tamil" -name: "எழில்" - -repl: | - ezhili - -main: "main.n" -template: | - பதிப்பி "வணக்கம், உலகமே!" - -run: | - ezhili main.n; ezhili -hello: | - வணக்கம், உலகமே! diff --git a/tools/generate-build-script.js b/tools/generate-build-script.js index fbcd50e..60a0792 100644 --- a/tools/generate-build-script.js +++ b/tools/generate-build-script.js @@ -48,7 +48,7 @@ sudo apt-get update`); deb, } = install; if (prepare) { - const { apt, npm, manual } = prepare; + const { apt, npm, opam, manual } = prepare; if (apt && apt.length > 0) { parts.push(`\ sudo apt-get install -y ${apt.join(" ")}`); @@ -56,6 +56,12 @@ sudo apt-get install -y ${apt.join(" ")}`); if (npm && npm.length > 0) { parts.push(`\ sudo npm install -g ${npm.join(" ")}`); + } + if (opam && opam.length > 0) { + parts.push(`\ +sudo opam init -n --disable-sandboxing --root /opt/opam +sudo opam install "${opam.join(" ")}" -y --root /opt/opam +sudo ln -s /opt/opam/default/bin/* /usr/local/bin/`); } if (manual) { parts.push(manual);