The edge of glory (rolling-release ~everything~)
This commit is contained in:
parent
4e2d98b7f3
commit
2d649ab017
|
@ -68,4 +68,4 @@ RUN sudo cp -a /tmp/riju/* /home/docker/src/ && rm -rf /tmp/riju
|
|||
|
||||
WORKDIR /home/docker/src
|
||||
RUN sudo deluser docker sudo
|
||||
RUN yarn test
|
||||
RUN RIJU_PRIVILEGED=1 yarn test
|
||||
|
|
|
@ -1845,7 +1845,6 @@ binding_irb.run(IRB.conf)
|
|||
scope: {
|
||||
code: `x = 5`,
|
||||
},
|
||||
ensure: `ruby -e 'raise "version mismatch, expected #{RUBY_VERSION}" unless ENV["PATH"].include? ".gem/ruby/#{RUBY_VERSION}/bin"'`,
|
||||
format: {
|
||||
run: "rufo -x",
|
||||
input: `puts "Hello, world!";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { spawn, SpawnOptions } from "child_process";
|
||||
import { SpawnOptions, spawn, spawnSync } from "child_process";
|
||||
import * as os from "os";
|
||||
import * as process from "process";
|
||||
|
||||
|
@ -21,10 +21,20 @@ export const rijuSystemPrivileged = appRoot.resolve(
|
|||
"system/out/riju-system-privileged"
|
||||
);
|
||||
|
||||
const rubyVersion = (() => {
|
||||
try {
|
||||
return spawnSync("ruby", ["-e", "puts RUBY_VERSION"])
|
||||
.stdout.toString()
|
||||
.trim();
|
||||
} catch (err) {
|
||||
return null;
|
||||
}
|
||||
})();
|
||||
|
||||
function getEnv({ uid, uuid }: Context) {
|
||||
const cwd = `/tmp/riju/${uuid}`;
|
||||
const path = [
|
||||
`${cwd}/.gem/ruby/2.7.0/bin`,
|
||||
rubyVersion && `${cwd}/.gem/ruby/${rubyVersion}/bin`,
|
||||
`${cwd}/.local/bin`,
|
||||
`${cwd}/node_modules/.bin`,
|
||||
`/usr/local/sbin`,
|
||||
|
@ -32,7 +42,7 @@ function getEnv({ uid, uuid }: Context) {
|
|||
`/usr/sbin`,
|
||||
`/usr/bin`,
|
||||
`/bin`,
|
||||
];
|
||||
].filter((x) => x);
|
||||
const username =
|
||||
uid >= MIN_UID && uid < MAX_UID ? `riju${uid}` : os.userInfo().username;
|
||||
return {
|
||||
|
|
|
@ -12,25 +12,32 @@ apt-get update
|
|||
apt-get install -y apt-transport-https curl gnupg lsb-release software-properties-common wget
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ubuntu_ver="$(lsb_release -rs)"
|
||||
ubuntu_name="$(lsb_release -cs)"
|
||||
|
||||
curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
|
||||
curl -sSL https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
|
||||
curl -sSL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
|
||||
curl -sSL https://downloads.ceylon-lang.org/apt/ceylon-debian-repo.gpg.key | apt-key add -
|
||||
curl -sSL https://keybase.io/crystal/pgp_keys.asc | apt-key add -
|
||||
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
|
||||
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B4112585D386EB94
|
||||
|
||||
wget -nv https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
|
||||
wget -nv "https://packages.microsoft.com/config/ubuntu/${ubuntu_ver}/packages-microsoft-prod.deb"
|
||||
dpkg -i packages-microsoft-prod.deb
|
||||
rm packages-microsoft-prod.deb
|
||||
|
||||
tee -a /etc/apt/sources.list.d/custom.list >/dev/null <<"EOF"
|
||||
nodesource="$(curl -sS https://deb.nodesource.com/setup_current.x | grep NODEREPO= | grep -Eo 'node_[0-9]+\.x' | head -n1)"
|
||||
cran="$(curl -sS https://cran.r-project.org/bin/linux/ubuntu/ | grep '<tr>' | grep focal | grep -Eo 'cran[0-9]+' | head -n1)"
|
||||
|
||||
tee -a /etc/apt/sources.list.d/custom.list >/dev/null <<EOF
|
||||
deb [arch=amd64] https://storage.googleapis.com/download.dartlang.org/linux/debian stable main
|
||||
deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/
|
||||
deb https://deb.nodesource.com/node_14.x focal main
|
||||
deb https://cloud.r-project.org/bin/linux/ubuntu ${ubuntu_name}-${cran}/
|
||||
deb https://deb.nodesource.com/${nodesource} ${ubuntu_name} main
|
||||
deb https://dist.crystal-lang.org/apt crystal main
|
||||
deb https://dl.hhvm.com/ubuntu focal main
|
||||
deb https://dl.hhvm.com/ubuntu ${ubuntu_name} main
|
||||
deb https://dl.yarnpkg.com/debian/ stable main
|
||||
deb-src https://deb.nodesource.com/node_14.x focal main
|
||||
deb https://downloads.ceylon-lang.org/apt/ unstable main
|
||||
EOF
|
||||
|
||||
add-apt-repository -y -n ppa:deadsnakes/ppa
|
||||
|
|
|
@ -8,6 +8,7 @@ packages="
|
|||
|
||||
# Needed for project infrastructure
|
||||
bash
|
||||
dctrl-tools
|
||||
git
|
||||
make
|
||||
nodejs
|
||||
|
|
|
@ -4,6 +4,11 @@ set -e
|
|||
set -o pipefail
|
||||
set -x
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
apt-get update
|
||||
|
||||
ceylon="$(grep-aptavail -F Package ceylon -s Package -n | sort -rV | head -n1)"
|
||||
|
||||
packages="
|
||||
|
||||
# Ada
|
||||
|
@ -47,6 +52,7 @@ clang-format
|
|||
mono-mcs
|
||||
|
||||
# Ceylon
|
||||
${ceylon}
|
||||
openjdk-8-jdk-headless
|
||||
|
||||
# Clojure
|
||||
|
@ -74,8 +80,6 @@ dhall
|
|||
|
||||
"
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
apt-get update
|
||||
apt-get install -y $(grep -v "^#" <<< "$packages")
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
|
|
@ -4,6 +4,12 @@ set -e
|
|||
set -o pipefail
|
||||
set -x
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
apt-get update
|
||||
|
||||
lua_ver="$(grep-aptavail -XF Provides lua -s Version -n | sort -Vr | head -n1)"
|
||||
lua_name="$(grep-aptavail -XF Provides lua -a -XF Version "${lua_ver}" -s Package -n | head -n1)"
|
||||
|
||||
packages="
|
||||
|
||||
# Elixir
|
||||
|
@ -26,7 +32,7 @@ fsharp
|
|||
fish
|
||||
|
||||
# FORTRAN
|
||||
flang-7
|
||||
flang
|
||||
|
||||
# Forth
|
||||
gforth
|
||||
|
@ -67,12 +73,10 @@ llvm
|
|||
cmake
|
||||
|
||||
# Lua
|
||||
lua5.3
|
||||
${lua_name}
|
||||
|
||||
"
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
apt-get update
|
||||
apt-get install -y $(grep -v "^#" <<< "$packages")
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
|
|
@ -4,6 +4,12 @@ set -e
|
|||
set -o pipefail
|
||||
set -x
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
apt-get update
|
||||
|
||||
lua_ver="$(grep-aptavail -XF Provides lua -s Version -n | sort -Vr | head -n1)"
|
||||
liblua_name="$(grep-aptavail -eF Package "liblua[0-9.]+-dev" -a -XF Version "${lua_ver}" -s Package | head -n1)"
|
||||
|
||||
packages="
|
||||
|
||||
# Scala
|
||||
|
@ -41,7 +47,7 @@ tcl
|
|||
tcsh
|
||||
|
||||
# TeX
|
||||
liblua5.3-dev
|
||||
${liblua_name}
|
||||
luarocks
|
||||
texlive-binaries
|
||||
|
||||
|
@ -72,8 +78,6 @@ zsh
|
|||
|
||||
"
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
apt-get update
|
||||
apt-get install -y $(grep -v "^#" <<< "$packages")
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
|
|
@ -5,73 +5,81 @@ set -o pipefail
|
|||
set -x
|
||||
pushd /tmp >/dev/null
|
||||
|
||||
latest_release() {
|
||||
curl -sSL "https://api.github.com/repos/$1/releases/latest" | jq -r .tag_name
|
||||
}
|
||||
|
||||
# Needed for project infrastructure
|
||||
wget -nv https://github.com/watchexec/watchexec/releases/download/1.13.1/watchexec-1.13.1-x86_64-unknown-linux-gnu.deb
|
||||
ver="$(latest_release watchexec/watchexec)"
|
||||
wget -nv "https://github.com/watchexec/watchexec/releases/download/${rel}/watchexec-${ver}-x86_64-unknown-linux-gnu.deb"
|
||||
dpkg -i watchexec-*.deb
|
||||
rm watchexec-*.deb
|
||||
|
||||
git clone https://github.com/circulosmeos/gdown.pl.git
|
||||
mv gdown.pl/gdown.pl /usr/bin/gdown
|
||||
mv gdown.pl/gdown.pl /usr/local/bin/gdown
|
||||
rm -rf gdown.pl
|
||||
|
||||
# Shared
|
||||
wget -nv https://github.com/jgm/pandoc/releases/download/2.10/pandoc-2.10-linux-amd64.tar.gz
|
||||
ver="$(latest_release jgm/pandoc)"
|
||||
wget -nv "https://github.com/jgm/pandoc/releases/download/${ver}/pandoc-${ver}-linux-amd64.tar.gz"
|
||||
tar -xf pandoc-*-linux-amd64.tar.gz -C /usr --strip-components=1
|
||||
rm pandoc-*-linux-amd64.tar.gz
|
||||
|
||||
# ><>
|
||||
wget -nv https://gist.githubusercontent.com/anonymous/6392418/raw/3b16018cb47f2f9ad1fa085c155cc5c0dc448b2d/fish.py -O /usr/bin/esofish
|
||||
sed -i 's:^#!.*:#!/usr/bin/env python3:' /usr/bin/esofish
|
||||
chmod +x /usr/bin/esofish
|
||||
wget -nv https://gist.githubusercontent.com/anonymous/6392418/raw/fish.py -O /usr/local/bin/esofish
|
||||
sed -i 's:^#!.*:#!/usr/bin/env python3:' /usr/local/bin/esofish
|
||||
chmod +x /usr/local/bin/esofish
|
||||
|
||||
# Ada
|
||||
wget -nv https://dl.bintray.com/reznikmm/ada-language-server/linux-latest.tar.gz
|
||||
tar -xf linux-latest.tar.gz
|
||||
mv linux/ada_language_server /usr/bin/ada_language_server
|
||||
mv linux/ada_language_server /usr/local/bin/ada_language_server
|
||||
mv linux/*.so* /usr/lib/x86_64-linux-gnu/
|
||||
rm -rf linux linux-latest.tar.gz
|
||||
|
||||
# APL
|
||||
wget -nv ftp://ftp.gnu.org/gnu/apl/apl_1.8-1_amd64.deb
|
||||
file="$(curl -sS ftp://ftp.gnu.org/gnu/apl/ | grep -Eo 'apl_[-0-9.]+_amd64.deb$' | sort -rV | head -n1)"
|
||||
wget -nv "ftp://ftp.gnu.org/gnu/apl/${file}"
|
||||
dpkg -i apl_*_amd64.deb
|
||||
rm apl_*_amd64.deb
|
||||
|
||||
# Ceylon
|
||||
wget -nv https://ceylon-lang.org/download/dist/1_3_3_deb -O ceylon.deb
|
||||
dpkg -i ceylon.deb
|
||||
rm ceylon.deb
|
||||
|
||||
# Clojure
|
||||
wget -nv https://github.com/snoe/clojure-lsp/releases/download/release-20200629T153107/clojure-lsp
|
||||
ver="$(latest_release snoe/clojure-lsp)"
|
||||
wget -nv "https://github.com/snoe/clojure-lsp/releases/download/${ver}/clojure-lsp"
|
||||
chmod +x clojure-lsp
|
||||
mv clojure-lsp /usr/bin/clojure-lsp
|
||||
mv clojure-lsp /usr/local/bin/clojure-lsp
|
||||
|
||||
# D
|
||||
wget -nv http://downloads.dlang.org/releases/2.x/2.092.0/dmd_2.092.0-0_amd64.deb
|
||||
wget -nv "$(curl -sSL https://dlang.org/download.html | grep -Eo '"http://[^"]+amd64.deb"' | tr -d '"')"
|
||||
dpkg -i dmd_*.deb
|
||||
rm dmd_*.deb
|
||||
|
||||
# Dhall
|
||||
wget -nv https://github.com/dhall-lang/dhall-haskell/releases/download/1.33.1/dhall-json-1.7.0-x86_64-linux.tar.bz2
|
||||
ver="$(latest_release dhall-lang/dhall-haskell)"
|
||||
file="$(curl -sSL "https://api.github.com/repos/dhall-lang/dhall-haskell/releases/tags/${ver}" | jq -r '.assets | map(select(.name | (contains("dhall-json") and contains("x86_64-linux.tar.bz2")))) | .[0].name')"
|
||||
wget -nv "https://github.com/dhall-lang/dhall-haskell/releases/download/${ver}/${file}"
|
||||
mkdir dhall-json
|
||||
tar -xf dhall-json-*-x86_64-linux.tar.bz2 -C dhall-json
|
||||
mv dhall-json/bin/dhall-to-json dhall-json/bin/json-to-dhall /usr/bin/
|
||||
mv dhall-json/bin/dhall-to-json dhall-json/bin/json-to-dhall /usr/local/bin/
|
||||
rm -rf dhall-json dhall-json-*-x86_64-linux.tar.bz2
|
||||
|
||||
# Elixir
|
||||
wget -nv https://github.com/elixir-lsp/elixir-ls/releases/download/v0.5.0/elixir-ls.zip
|
||||
ver="$(latest_release elixir-lsp/elixir-ls)"
|
||||
wget -nv "https://github.com/elixir-lsp/elixir-ls/releases/download/${ver}/elixir-ls.zip"
|
||||
unzip -d /opt/elixir-ls elixir-ls.zip
|
||||
ln -s /opt/elixir-ls/language_server.sh /usr/bin/elixir-ls
|
||||
ln -s /opt/elixir-ls/language_server.sh /usr/local/bin/elixir-ls
|
||||
rm elixir-ls.zip
|
||||
|
||||
# Elm
|
||||
wget -nv https://github.com/elm/compiler/releases/download/0.19.1/binary-for-linux-64-bit.gz
|
||||
ver="$(latest_release elm/compiler)"
|
||||
wget -nv "https://github.com/elm/compiler/releases/download/${ver}/binary-for-linux-64-bit.gz"
|
||||
gunzip binary-for-linux-64-bit.gz
|
||||
chmod +x binary-for-linux-64-bit
|
||||
mv binary-for-linux-64-bit /usr/bin/elm
|
||||
mv binary-for-linux-64-bit /usr/local/bin/elm
|
||||
|
||||
# Emojicode
|
||||
wget -nv https://github.com/emojicode/emojicode/releases/download/v1.0-beta.2/Emojicode-1.0-beta.2-Linux-x86_64.tar.gz
|
||||
ver="$(latest_release emojicode/emojicode)"
|
||||
wget -nv "https://github.com/emojicode/emojicode/releases/download/${ver}/Emojicode-$(sed 's/^v//' <<< "$ver")-Linux-x86_64.tar.gz"
|
||||
tar -xf Emojicode-*-Linux-x86_64.tar.gz
|
||||
pushd Emojicode-*-Linux-x86_64 >/dev/null
|
||||
mv emojicodec /usr/local/bin/
|
||||
|
@ -90,64 +98,67 @@ rm Entropy.zip
|
|||
# Erlang
|
||||
wget -nv https://s3.amazonaws.com/rebar3/rebar3
|
||||
chmod +x rebar3
|
||||
mv rebar3 /usr/bin/rebar3
|
||||
mv rebar3 /usr/local/bin/rebar3
|
||||
|
||||
# Euphoria
|
||||
wget -nv https://sourceforge.net/projects/rapideuphoria/files/Euphoria/4.0.5/euphoria_4.0.5_amd64.deb/download -O euphoria.deb
|
||||
wget -nv "$(curl -sSL https://sourceforge.net/projects/rapideuphoria/best_release.json | jq -r '.platform_releases.linux.url')" -O euphoria.deb
|
||||
dpkg -i euphoria.deb
|
||||
rm euphoria.deb
|
||||
|
||||
# Factor
|
||||
wget -nv https://downloads.factorcode.org/releases/0.98/factor-linux-x86-64-0.98.tar.gz
|
||||
ver="$(curl -sSL https://factorcode.org/ | grep -Eo 'release\?os=linux[^>]+>[^<]+' | sed -E 's/[^>]+>//' | head -n1)"
|
||||
wget -nv "https://downloads.factorcode.org/releases/${ver}/factor-linux-x86-64-${ver}.tar.gz"
|
||||
tar -xf factor-linux-x86-64-*.tar.gz
|
||||
mv -T factor /opt/factor
|
||||
ln -s /opt/factor/factor /usr/bin/factor-lang
|
||||
ln -s /opt/factor/factor /usr/local/bin/factor-lang
|
||||
rm factor-linux-x86-64-*.tar.gz
|
||||
|
||||
# Go
|
||||
export GO111MODULE=on
|
||||
export GOPATH="$PWD/go"
|
||||
go get golang.org/x/tools/gopls@latest
|
||||
mv go/bin/gopls /usr/bin/gopls
|
||||
mv go/bin/gopls /usr/local/bin/gopls
|
||||
rm -rf go
|
||||
|
||||
# GolfScript
|
||||
wget -nv http://www.golfscript.com/golfscript/golfscript.rb -O /usr/bin/golfscript
|
||||
chmod +x /usr/bin/golfscript
|
||||
wget -nv http://www.golfscript.com/golfscript/golfscript.rb -O /usr/local/bin/golfscript
|
||||
chmod +x /usr/local/bin/golfscript
|
||||
|
||||
# Haskell
|
||||
wget -nv https://get.haskellstack.org/stable/linux-x86_64-static.tar.gz
|
||||
tar -xf linux-x86_64-static.tar.gz
|
||||
mv stack-*-linux-x86_64-static/stack /usr/bin/stack
|
||||
mv stack-*-linux-x86_64-static/stack /usr/local/bin/stack
|
||||
rm -rf stack-*-linux-x86_64-static linux-x86_64-static.tar.gz
|
||||
|
||||
wget "https://drive.google.com/uc?export=download&id=1MpozlNLmWeUaQuT-5t6gyE3Yv56gUbea" -O /usr/local/bin/brittany
|
||||
chmod +x /usr/local/bin/brittany
|
||||
|
||||
mkdir -p /opt/haskell
|
||||
gdown "https://drive.google.com/uc?export=download&id=1GPoR_ja4ns16KCamRgwB-JVag4HK0igz" /usr/bin/hie
|
||||
gdown "https://drive.google.com/uc?export=download&id=1GPoR_ja4ns16KCamRgwB-JVag4HK0igz" /usr/local/bin/hie
|
||||
gdown "https://drive.google.com/uc?export=download&id=1qSxj8JjAeetAmNjUGayX0RBARgr5R4Ij" /opt/haskell/hoogle.hoo
|
||||
chmod +x /usr/bin/hie
|
||||
chmod +x /usr/local/bin/hie
|
||||
|
||||
# HCL/TOML/YAML
|
||||
wget -nv https://github.com/sclevine/yj/releases/download/v4.0.0/yj-linux
|
||||
ver="$(latest_release sclevine/yj)"
|
||||
wget -nv "https://github.com/sclevine/yj/releases/download/${ver}/yj-linux"
|
||||
chmod +x yj-linux
|
||||
mv yj-linux /usr/bin/yj
|
||||
mv yj-linux /usr/local/bin/yj
|
||||
|
||||
# Ink
|
||||
wget -nv https://github.com/thesephist/ink/releases/download/v0.1.7/ink-linux
|
||||
wget -nv https://github.com/thesephist/ink/releases/download/v0.1.7/std.ink
|
||||
wget -nv https://github.com/thesephist/ink/releases/download/v0.1.7/str.ink
|
||||
ver="$(latest_release thesephist/ink)"
|
||||
wget -nv "https://github.com/thesephist/ink/releases/download/${ver}/ink-linux"
|
||||
wget -nv "https://github.com/thesephist/ink/releases/download/${ver}/std.ink"
|
||||
wget -nv "https://github.com/thesephist/ink/releases/download/${ver}/str.ink"
|
||||
chmod +x ink-linux
|
||||
mv ink-linux /usr/bin/ink
|
||||
mv ink-linux /usr/local/bin/ink
|
||||
mkdir /opt/ink
|
||||
mv std.ink str.ink /opt/ink/
|
||||
|
||||
# Ioke
|
||||
wget -nv https://ioke.org/dist/ioke-P-ikj-0.4.0.tar.gz
|
||||
wget -nv https://ioke.org/dist/ioke-P-ikj-latest.tar.gz
|
||||
tar -xf ioke-P-ikj-*.tar.gz -C /opt
|
||||
rm ioke-P-ikj-*.tar.gz
|
||||
ln -s /opt/ioke/bin/ioke /usr/bin/ioke
|
||||
ln -s /opt/ioke/bin/ioke /usr/local/bin/ioke
|
||||
|
||||
# Kitten
|
||||
wget -nv "https://drive.google.com/uc?export=download&id=11u0G2I8i0u4ez27zvEjAT6E9xF4RwuFZ" -O /usr/local/bin/kitten
|
||||
|
@ -155,18 +166,21 @@ wget -nv "https://drive.google.com/uc?export=download&id=1h-U1iURWax8h18kTD1AyGS
|
|||
chmod +x /usr/local/bin/kitten
|
||||
|
||||
# Kotlin
|
||||
wget -nv https://github.com/JetBrains/kotlin/releases/download/v1.3.72/kotlin-compiler-1.3.72.zip
|
||||
ver="$(latest_release JetBrains/kotlin)"
|
||||
wget -nv "https://github.com/JetBrains/kotlin/releases/download/${ver}/kotlin-compiler-$(sed 's/^v//' <<< "$ver").zip"
|
||||
unzip kotlin-*.zip
|
||||
cp kotlinc/bin/* /usr/bin/
|
||||
cp kotlinc/lib/* /usr/lib/
|
||||
cp kotlinc/bin/* /usr/local/bin/
|
||||
cp kotlinc/lib/* /usr/local/lib/
|
||||
rm -rf kotlin-*.zip kotlinc
|
||||
|
||||
# Lua
|
||||
wget -nv https://github.com/EmmyLua/EmmyLua-LanguageServer/releases/download/0.3.6/EmmyLua-LS-all.jar
|
||||
ver="$(latest_release EmmyLua/EmmyLua-LanguageServer)"
|
||||
wget -nv "https://github.com/EmmyLua/EmmyLua-LanguageServer/releases/download/${ver}/EmmyLua-LS-all.jar"
|
||||
mv EmmyLua-LS-all.jar /usr/lib/EmmyLua-LS.jar
|
||||
|
||||
# MariaDB
|
||||
wget -nv "https://downloads.mariadb.org/f/mariadb-10.5.4/bintar-linux-x86_64/mariadb-10.5.4-linux-x86_64.tar.gz/from/http%3A//mirror.vpsfree.cz/mariadb/?serve" -O mariadb.tar.gz
|
||||
ver="$(curl -sSL https://downloads.mariadb.org/ | grep 'href="/mariadb/[0-9]' | grep -Eo '[0-9][^/]+' | sort -rV | head -n1)"
|
||||
wget -nv "https://downloads.mariadb.org/f/mariadb-${ver}/bintar-linux-x86_64/mariadb-${ver}-linux-x86_64.tar.gz/from/http%3A//mirror.vpsfree.cz/mariadb/?serve" -O mariadb.tar.gz
|
||||
tar -xf mariadb.tar.gz
|
||||
mkdir /opt/mariadb
|
||||
mv mariadb-*-linux-x86_64/* /opt/mariadb/
|
||||
|
@ -174,17 +188,20 @@ chmod a=rx,u=rwx /opt/mariadb/lib/plugin/auth_pam_tool_dir
|
|||
chmod a=rx,u=rwxs /opt/mariadb/lib/plugin/auth_pam_tool_dir/auth_pam_tool
|
||||
|
||||
# Omgrofl
|
||||
ver="$(latest_release OlegSmelov/omgrofl-interpreter)"
|
||||
mkdir /opt/omgrofl
|
||||
wget -nv https://github.com/OlegSmelov/omgrofl-interpreter/releases/download/v0.1/Omgrofl.jar -O /opt/omgrofl/Omgrofl.jar
|
||||
wget -nv "https://github.com/OlegSmelov/omgrofl-interpreter/releases/download/${ver}/Omgrofl.jar" -O /opt/omgrofl/Omgrofl.jar
|
||||
|
||||
# PowerShell
|
||||
wget -nv https://github.com/PowerShell/PowerShell/releases/download/v7.0.1/powershell-7.0.1-linux-x64.tar.gz
|
||||
ver="$(latest_release PowerShell/PowerShell)"
|
||||
wget -nv "https://github.com/PowerShell/PowerShell/releases/download/${ver}/powershell-$(sed 's/^v//' <<< "$ver")-linux-x64.tar.gz"
|
||||
mkdir /opt/powershell
|
||||
tar -xf powershell-*.tar.gz -C /opt/powershell
|
||||
ln -s /opt/powershell/pwsh /usr/bin/pwsh
|
||||
ln -s /opt/powershell/pwsh /usr/local/bin/pwsh
|
||||
rm powershell-*.tar.gz
|
||||
|
||||
wget -nv https://github.com/PowerShell/PowerShellEditorServices/releases/download/v2.2.0/PowerShellEditorServices.zip
|
||||
ver="$(latest_release PowerShell/PowerShellEditorServices)"
|
||||
wget -nv "https://github.com/PowerShell/PowerShellEditorServices/releases/download/${ver}/PowerShellEditorServices.zip"
|
||||
unzip PowerShellEditorServices.zip
|
||||
mv PowerShellEditorServices /opt/powershell-editor-services
|
||||
rm PowerShellEditorServices.zip
|
||||
|
@ -195,11 +212,12 @@ nupkg="$(echo "$xml" | grep -Eo 'https://[^<]+\.nupkg' | tail -n1)"
|
|||
wget -nv "${nupkg}"
|
||||
unzip -d /opt/mspyls Python-Language-Server-linux-x64.*.nupkg
|
||||
chmod +x /opt/mspyls/Microsoft.Python.LanguageServer
|
||||
ln -s /opt/mspyls/Microsoft.Python.LanguageServer /usr/bin/Microsoft.Python.LanguageServer
|
||||
ln -s /opt/mspyls/Microsoft.Python.LanguageServer /usr/local/bin/Microsoft.Python.LanguageServer
|
||||
rm Python-Language-Server-linux-x64.*.nupkg
|
||||
|
||||
# ReasonML
|
||||
wget -nv https://github.com/jaredly/reason-language-server/releases/download/1.7.10/rls-linux.zip
|
||||
ver="$(latest_release jaredly/reason-language-server)"
|
||||
wget -nv "https://github.com/jaredly/reason-language-server/releases/download/${ver}/rls-linux.zip"
|
||||
unzip rls-linux.zip
|
||||
mv rls-linux/reason-language-server /usr/local/bin/
|
||||
rm rls-linux.zip
|
||||
|
@ -215,14 +233,15 @@ RUSTUP_HOME=/opt/rust exec /opt/rust/bin/${0##*/} "$@"
|
|||
EOF
|
||||
chmod +x /opt/rust/wrapper
|
||||
for file in /opt/rust/bin/*; do
|
||||
ln -s /opt/rust/wrapper "/usr/bin/${file##*/}"
|
||||
ln -s /opt/rust/wrapper "/usr/local/bin/${file##*/}"
|
||||
done
|
||||
|
||||
# Scala
|
||||
file="$(curl -sSL https://scalameta.org/metals/docs/editors/emacs.html | grep -Eo 'org.scalameta[^ ]+')"
|
||||
wget -nv https://git.io/coursier-cli
|
||||
chmod +x coursier-cli
|
||||
mv coursier-cli /usr/bin/coursier
|
||||
coursier bootstrap --java-opt -Xss4m --java-opt -Xms100m --java-opt -Dmetals.client=emacs org.scalameta:metals_2.12:0.9.1 -r bintray:scalacenter/releases -r sonatype:snapshots -o /usr/bin/metals
|
||||
mv coursier-cli /usr/local/bin/coursier
|
||||
coursier bootstrap --java-opt -Xss4m --java-opt -Xms100m --java-opt -Dmetals.client=emacs "${file}" -r bintray:scalacenter/releases -r sonatype:snapshots -o /usr/local/bin/metals
|
||||
metals -version </dev/null
|
||||
mkdir /opt/coursier
|
||||
mv "$HOME/.cache/coursier" /opt/coursier/cache
|
||||
|
@ -232,15 +251,22 @@ wget -nv https://setl.org/setl/bin/Linux-x86-64bit/setlbin.tgz
|
|||
tar -xf setlbin.tgz -C /usr/local/bin
|
||||
|
||||
# Snobol
|
||||
gdown "https://drive.google.com/file/d/1ygQkpgfirpq4b7s4YNsSijkK8IQgSLWk/view?usp=sharing" /usr/bin/snobol4
|
||||
chmod +x /usr/bin/snobol4
|
||||
file="$(curl -sSL ftp://ftp.snobol4.org/snobol/ | grep -Eo 'snobol4-.*\.tar\.gz')"
|
||||
wget -nv "ftp://ftp.snobol4.org/snobol/${file}"
|
||||
tar -xf snobol4-*.tar.gz
|
||||
rm snobol4-*.tar.gz
|
||||
pushd snobol4-* >/dev/null
|
||||
make || true
|
||||
mv snobol4 /usr/local/bin/snobol4
|
||||
popd >/dev/null
|
||||
rm -rf snobol4-*
|
||||
|
||||
# Swift
|
||||
gdown "https://drive.google.com/uc?export=download&id=1eE1-VuZz0gv-fITaGVT_r1UunCLjS-JT" swift.tar.gz
|
||||
mkdir /opt/swift
|
||||
tar -xf swift.tar.gz -C /opt/swift --strip-components=2
|
||||
ln -s /opt/swift/bin/swiftc /usr/bin/swiftc
|
||||
ln -s /opt/swift/bin/sourcekit-lsp /usr/bin/sourcekit-lsp
|
||||
ln -s /opt/swift/bin/swiftc /usr/local/bin/swiftc
|
||||
ln -s /opt/swift/bin/sourcekit-lsp /usr/local/bin/sourcekit-lsp
|
||||
rm swift.tar.gz
|
||||
|
||||
popd >/dev/null
|
||||
|
|
|
@ -8,19 +8,19 @@ pushd /tmp >/dev/null
|
|||
# Beatnik
|
||||
git clone https://github.com/catseye/Beatnik.git
|
||||
sed -i 's#env python#env python2#' Beatnik/script/beatnik.py
|
||||
mv Beatnik/script/beatnik.py /usr/bin/beatnik
|
||||
mv Beatnik/script/beatnik.py /usr/local/bin/beatnik
|
||||
rm -rf Beatnik
|
||||
|
||||
# Binary Lambda Calculus
|
||||
wget -nv https://www.ioccc.org/2012/tromp/tromp.c
|
||||
clang tromp.c -Wno-everything -DInt=long -DX=8 -DA=500000 -o /usr/bin/tromp
|
||||
clang tromp.c -Wno-everything -DInt=long -DX=8 -DA=500000 -o /usr/local/bin/tromp
|
||||
rm tromp.c
|
||||
|
||||
# Erlang
|
||||
git clone https://github.com/erlang-ls/erlang_ls.git
|
||||
pushd erlang_ls >/dev/null
|
||||
make
|
||||
mv _build/default/bin/erlang_ls /usr/bin/erlang_ls
|
||||
mv _build/default/bin/erlang_ls /usr/local/bin/erlang_ls
|
||||
popd >/dev/null
|
||||
rm -rf erlang_ls
|
||||
|
||||
|
@ -31,7 +31,7 @@ git clone https://github.com/m-ender/hexagony.git /opt/hexagony
|
|||
git clone https://github.com/raxod502/kalyn.git
|
||||
pushd kalyn >/dev/null
|
||||
stack build kalyn
|
||||
mv "$(stack exec which kalyn)" /usr/bin/kalyn
|
||||
mv "$(stack exec which kalyn)" /usr/local/bin/kalyn
|
||||
mkdir /opt/kalyn
|
||||
cp -R src-kalyn/Stdlib src-kalyn/Stdlib.kalyn /opt/kalyn/
|
||||
popd >/dev/null
|
||||
|
@ -46,14 +46,14 @@ rm -rf lci
|
|||
|
||||
# Malbolge
|
||||
git clone https://github.com/bipinu/malbolge.git
|
||||
clang malbolge/malbolge.c -o /usr/bin/malbolge
|
||||
clang malbolge/malbolge.c -o /usr/local/bin/malbolge
|
||||
rm -rf malbolge
|
||||
|
||||
# Rapira
|
||||
git clone https://github.com/freeduke33/rerap2.git
|
||||
pushd rerap2 >/dev/null
|
||||
make
|
||||
mv rapira /usr/bin/rapira
|
||||
mv rapira /usr/local/bin/rapira
|
||||
popd >/dev/null
|
||||
rm -rf rerap2
|
||||
|
||||
|
@ -66,12 +66,12 @@ popd >/dev/null
|
|||
rm -rf qalb
|
||||
|
||||
# Thue
|
||||
wget -nv https://catseye.tc/distfiles/thue-1.5-2015.0827.zip
|
||||
wget -nv "$(curl -sSL https://catseye.tc/distribution/Thue_distribution | grep -Eo 'https://catseye.tc/distfiles/thue-[^"]+\.zip' | head -n1)"
|
||||
unzip thue-*.zip
|
||||
rm thue-*.zip
|
||||
pushd thue-* >/dev/null
|
||||
./build.sh
|
||||
mv bin/thue /usr/bin/thue
|
||||
mv bin/thue /usr/local/bin/thue
|
||||
popd >/dev/null
|
||||
rm -rf thue-*
|
||||
|
||||
|
@ -79,7 +79,7 @@ rm -rf thue-*
|
|||
git clone https://github.com/manyoso/zot.git
|
||||
pushd zot >/dev/null
|
||||
./build.sh
|
||||
mv build/bin/zot /usr/bin/zot
|
||||
mv build/bin/zot /usr/local/bin/zot
|
||||
popd >/dev/null
|
||||
rm -rf zot
|
||||
|
||||
|
|
|
@ -4,14 +4,22 @@ set -e
|
|||
set -o pipefail
|
||||
set -x
|
||||
pushd /tmp >/dev/null
|
||||
useradd -m -N -l -r -p '!' build
|
||||
|
||||
# Cmd
|
||||
useradd -m -N -l -r -p '!' build
|
||||
sudo -u build wine cmd < /dev/null
|
||||
mkdir -p /opt/cmd/home-template
|
||||
cp -R /home/build/.wine /opt/cmd/home-template/
|
||||
chmod -R a=u,go-w /opt/cmd/home-template
|
||||
userdel -r build
|
||||
|
||||
# Elm
|
||||
mkdir -p /opt/elm
|
||||
mkdir elm-project
|
||||
pushd elm-project >/dev/null
|
||||
yes | elm init
|
||||
cat elm.json | jq '."source-directories" = ["."]' > /opt/elm/elm.json
|
||||
popd >/dev/null
|
||||
rm -rf elm-project
|
||||
|
||||
# PureScript
|
||||
mkdir project-template
|
||||
|
@ -43,7 +51,7 @@ yarn install
|
|||
popd >/dev/null
|
||||
|
||||
# Befunge
|
||||
tee /usr/bin/befunge-repl >/dev/null <<"EOF"
|
||||
tee /usr/local/bin/befunge-repl >/dev/null <<"EOF"
|
||||
#!/usr/bin/env -S NODE_PATH=/usr/lib/node_modules node
|
||||
const fs = require("fs");
|
||||
|
||||
|
@ -71,10 +79,10 @@ befunge.run(fs.readFileSync(args[0], { encoding: "utf-8" })).catch((err) => {
|
|||
process.exit(1);
|
||||
});
|
||||
EOF
|
||||
chmod +x /usr/bin/befunge-repl
|
||||
chmod +x /usr/local/bin/befunge-repl
|
||||
|
||||
# Binary Lambda Calculus
|
||||
tee /usr/bin/binary-to-text >/dev/null <<"EOF"
|
||||
tee /usr/local/bin/binary-to-text >/dev/null <<"EOF"
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import re
|
||||
|
@ -88,10 +96,10 @@ for m in re.finditer(r"([01]{8})", text):
|
|||
|
||||
print("".join(out), end="")
|
||||
EOF
|
||||
chmod +x /usr/bin/binary-to-text
|
||||
chmod +x /usr/local/bin/binary-to-text
|
||||
|
||||
# BrainF
|
||||
tee /usr/bin/brainf-repl >/dev/null <<"EOF"
|
||||
tee /usr/local/bin/brainf-repl >/dev/null <<"EOF"
|
||||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
import readline
|
||||
|
@ -120,36 +128,7 @@ while True:
|
|||
f.flush()
|
||||
subprocess.run(["beef", f.name])
|
||||
EOF
|
||||
chmod +x /usr/bin/brainf-repl
|
||||
|
||||
# Elm
|
||||
mkdir /opt/elm
|
||||
tee /opt/elm/elm.json >/dev/null <<"EOF"
|
||||
{
|
||||
"type": "application",
|
||||
"source-directories": [
|
||||
"."
|
||||
],
|
||||
"elm-version": "0.19.1",
|
||||
"dependencies": {
|
||||
"direct": {
|
||||
"elm/browser": "1.0.2",
|
||||
"elm/core": "1.0.5",
|
||||
"elm/html": "1.0.0"
|
||||
},
|
||||
"indirect": {
|
||||
"elm/json": "1.1.3",
|
||||
"elm/time": "1.0.0",
|
||||
"elm/url": "1.0.0",
|
||||
"elm/virtual-dom": "1.0.2"
|
||||
}
|
||||
},
|
||||
"test-dependencies": {
|
||||
"direct": {},
|
||||
"indirect": {}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
chmod +x /usr/local/bin/brainf-repl
|
||||
|
||||
# Haskell
|
||||
mkdir -p /opt/haskell
|
||||
|
@ -187,7 +166,7 @@ repl.start({prompt: "قلب> ", eval: (cmd, context, filename, callback) => call
|
|||
EOF
|
||||
|
||||
# Unlambda
|
||||
tee /usr/bin/unlambda-repl >/dev/null <<"EOF"
|
||||
tee /usr/local/bin/unlambda-repl >/dev/null <<"EOF"
|
||||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
import readline
|
||||
|
@ -213,7 +192,8 @@ while True:
|
|||
continue
|
||||
subprocess.run(["unlambda"], input=code, encoding="utf-8")
|
||||
EOF
|
||||
chmod +x /usr/bin/unlambda-repl
|
||||
chmod +x /usr/local/bin/unlambda-repl
|
||||
|
||||
userdel -r build
|
||||
popd >/dev/null
|
||||
rm "$0"
|
||||
|
|
|
@ -4,9 +4,9 @@ set -e
|
|||
set -o pipefail
|
||||
|
||||
cp scripts/riju.service /etc/systemd/system/riju.service
|
||||
cp scripts/riju-serve.bash /usr/bin/riju-serve
|
||||
cp scripts/riju-serve.bash /usr/local/bin/riju-serve
|
||||
cp scripts/certbot-pre.bash /etc/letsencrypt/renewal-hooks/pre/riju
|
||||
cp scripts/certbot-post.bash /etc/letsencrypt/renewal-hooks/post/riju
|
||||
cp scripts/deploy-phase1.py /usr/bin/riju-deploy
|
||||
cp scripts/deploy-phase1.py /usr/local/bin/riju-deploy
|
||||
|
||||
systemctl daemon-reload
|
||||
|
|
Loading…
Reference in New Issue