Work on a number of additional languages

This commit is contained in:
Radon Rosborough 2021-01-11 19:34:44 -08:00
parent 5895b5f3e4
commit f013f7e26c
31 changed files with 344 additions and 52 deletions

View File

@ -41,6 +41,9 @@ function repl {
}
function main {
if get main | grep -q /; then
mkdir -p "$(dirname "$(get main)")"
fi
: > "$(get main)"
has prefix && get prefix >> "$(get main)"
get template >> "$(get main)"

View File

@ -31,6 +31,7 @@ EOF
packages="
apt-file
dctrl-tools
docker-ce-cli
g++
git

View File

@ -19,15 +19,18 @@ wget https://letsencrypt.org/certs/lets-encrypt-r3.pem -O /usr/local/share/ca-ce
update-ca-certificates
curl -fsSL https://downloads.ceylon-lang.org/apt/ceylon-debian-repo.gpg.key | apt-key add -
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
ubuntu_ver="$(lsb_release -rs)"
ubuntu_name="$(lsb_release -cs)"
node_repo="$(curl -sS https://deb.nodesource.com/setup_current.x | grep NODEREPO= | grep -Eo 'node_[0-9]+\.x' | head -n1)"
wget "https://packages.microsoft.com/config/ubuntu/${ubuntu_ver}/packages-microsoft-prod.deb"
apt-get install ./packages-microsoft-prod.deb
curl -fsSL https://downloads.ceylon-lang.org/apt/ceylon-debian-repo.gpg.key | apt-key add -
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
tee -a /etc/apt/sources.list.d/custom.list >/dev/null <<EOF
deb [arch=amd64] https://downloads.ceylon-lang.org/apt/ unstable main
deb [arch=amd64] https://deb.nodesource.com/${node_repo} ${ubuntu_name} main
@ -44,10 +47,13 @@ jq
less
make
man
moreutils
nodejs
opam
perl
python3-pip
ripgrep
ruby
strace
sudo
tmux

View File

@ -25,6 +25,16 @@ wget https://letsencrypt.org/certs/lets-encrypt-r3.pem -O /usr/local/share/ca-ce
update-ca-certificates
ubuntu_ver="$(lsb_release -rs)"
ubuntu_name="$(lsb_release -cs)"
cran_repo="$(curl -fsSL https://cran.r-project.org/bin/linux/ubuntu/ | grep '<tr>' | grep "${ubuntu_name}" | grep -Eo 'cran[0-9]+' | head -n1)"
node_repo="$(curl -fsSL https://deb.nodesource.com/setup_current.x | grep NODEREPO= | grep -Eo 'node_[0-9]+\.x' | head -n1)"
# .NET
wget "https://packages.microsoft.com/config/ubuntu/${ubuntu_ver}/packages-microsoft-prod.deb"
apt-get install ./packages-microsoft-prod.deb
# Ceylon
curl -fsSL https://downloads.ceylon-lang.org/apt/ceylon-debian-repo.gpg.key | apt-key add -
@ -49,12 +59,6 @@ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB
# Yarn
curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
ubuntu_ver="$(lsb_release -rs)"
ubuntu_name="$(lsb_release -cs)"
cran_repo="$(curl -fsSL https://cran.r-project.org/bin/linux/ubuntu/ | grep '<tr>' | grep "${ubuntu_name}" | grep -Eo 'cran[0-9]+' | head -n1)"
node_repo="$(curl -fsSL https://deb.nodesource.com/setup_current.x | grep NODEREPO= | grep -Eo 'node_[0-9]+\.x' | head -n1)"
tee -a /etc/apt/sources.list.d/custom.list >/dev/null <<EOF
# Ceylon
deb [arch=amd64] https://downloads.ceylon-lang.org/apt/ unstable main
@ -91,11 +95,13 @@ packages="
apt-file
less
clang
git
jq
${libicu}
make
man
nodejs
ripgrep
strace
sudo
tmux

View File

@ -22,10 +22,11 @@ install:
- mongodb-clients.deb
- mongodb-server.deb
- mongodb-server-core.deb
stripDepends:
- mongodb-clients
- mongodb-server
- mongodb-server-core
depends:
strip:
- mongodb-clients
- mongodb-server
- 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"

View File

@ -6,6 +6,9 @@ name: "MySQL"
install:
apt:
- mysql-server
- mysql-client
riju:
- 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

View File

@ -7,6 +7,18 @@ install:
prepare:
apt:
- clang
- libgc-dev
apt:
- libgc-dev
manual: |
path="$(curl -sSL https://miasap.se/obnc/ | grep -F obnc_ | grep -Eo 'obnc_[^"]+' | grep -v win | head -n1)"
wget "https://miasap.se/obnc/downloads/${path}" -O obnc.tar.gz
mkdir obnc
tar -xf obnc.tar.gz -C obnc --strip-components=1
pushd obnc
./build
./install --destdir="${pkg}"
popd
main: "Main.obn"
template: |

View File

@ -10,6 +10,8 @@ install:
- gcc
- gnustep-devel
- gobjc++
- clang-format
- clangd
main: "main.mm"
template: |

View File

@ -9,6 +9,8 @@ install:
apt:
- gcc
- gnustep-devel
- clang-format
- clangd
main: "main.m"
template: |

View File

@ -3,10 +3,13 @@ name: "OCaml"
install:
apt:
- ocaml
- ocaml-nox
opam:
- ocamlformat
- ocaml-lsp-server: "https://github.com/ocaml/ocaml-lsp.git"
- name: ocaml-lsp-server
source: "https://github.com/ocaml/ocaml-lsp.git"
binaries:
- ocamllsp
repl: |
ocaml

View File

@ -4,6 +4,13 @@ aliases:
- "rofl"
name: "Omgrofl"
install:
manual: |
install -d "${pkg}/opt/omgrofl"
ver="$(latest_release OlegSmelov/omgrofl-interpreter)"
wget "https://github.com/OlegSmelov/omgrofl-interpreter/releases/download/${ver}/Omgrofl.jar" -O "${pkg}/opt/omgrofl/omgrofl.jar"
main: "main.omgrofl"
template: |
lol iz 72
@ -33,4 +40,4 @@ template: |
rofl lol
run: |
java -jar /opt/omgrofl/Omgrofl.jar main.omgrofl
java -jar /opt/omgrofl/omgrofl.jar main.omgrofl

View File

@ -5,6 +5,16 @@ install:
prepare:
apt:
- autoconf
- libtool
- libgmp-dev
manual: |
git clone https://git.code.sf.net/p/esco/code esco
pushd esco
autoreconf -fi
./configure --prefix="${pkg}/usr/local"
make
make install
popd
main: "main.ook"
template: |

View File

@ -4,6 +4,13 @@ aliases:
- "mozart2"
name: "Oz"
install:
manual: |
ver="$(latest_release mozart/mozart2 | sed 's/^v//')"
wget "https://github.com/mozart/mozart2/releases/download/v${ver}/mozart2-${ver}-x86_64-linux.deb" -O mozart.deb
deb:
- mozart.deb
main: "main.oz"
template: |
functor

View File

@ -4,6 +4,22 @@ aliases:
- "pawnrun"
name: "PAWN"
install:
prepare:
apt:
- cmake
manual: |
install -d "${pkg}/opt/pawn"
install -d "${pkg}/usr/local/bin"
git clone https://github.com/compuphase/pawn.git
pushd pawn
cmake .
make
cp pawncc pawnrun "${pkg}/usr/local/bin/"
cp -R include "${pkg}/opt/pawn/"
popd
main: "main.pawn"
template: |
#include <core>

View File

@ -13,6 +13,8 @@ aliases:
name: "Pikachu"
install:
apt:
- python3-setuptools
pip:
- pikalang

View File

@ -3,8 +3,8 @@ name: "Pike"
install:
apt:
- $(grep-aptavail -eF Package "^pike[0-9.]+$" -s Package -n | sort -Vr | head -n1)
- $(grep-aptavail -eF Package "^pike[0-9.]+$" -s Package -n | sort -Vr | head -n1)-doc
- $(grep-aptavail -wF Package "pike[0-9.]+" -s Package -n | sort -Vr | head -n1)
- $(grep-aptavail -wF Package "pike[0-9.]+" -s Package -n | sort -Vr | head -n1)-doc
repl: |
pike

View File

@ -11,6 +11,8 @@ install:
apt:
- postgresql
- postgresql-client
riju:
- 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

View File

@ -5,6 +5,21 @@ aliases:
name: "PowerShell"
monacoLang: powershell
install:
manual: |
install -d "${pkg}/opt/powershell"
install -d "${pkg}/usr/local/bin"
ver="$(latest_release PowerShell/PowerShell | sed 's/^v//')"
wget "https://github.com/PowerShell/PowerShell/releases/download/v${ver}/powershell-${ver}-linux-x64.tar.gz" -O powershell.tar.gz
tar -xf powershell.tar.gz -C "${pkg}/opt/powershell"
ln -s /opt/powershell/pwsh "${pkg}/usr/local/bin/"
ver="$(latest_release PowerShell/PowerShellEditorServices)"
wget "https://github.com/PowerShell/PowerShellEditorServices/releases/download/${ver}/PowerShellEditorServices.zip"
unzip PowerShellEditorServices.zip
cp -RT PowerShellEditorServices "${pkg}/opt/powershell-editor-services"
repl: |
SHELL=/usr/bin/pwsh pwsh
input: |

View File

@ -3,6 +3,14 @@ aliases:
- "psc"
name: "PSeInt"
install:
manual: |
install -d "${pkg}/usr/local/bin"
wget "$(curl -sSL "http://pseint.sourceforge.net/index.php?page=descargas.php&os=lnx" | grep -Eo 'http://[^"]+l64[^"]+\.tgz\?download')" -O pseint.tgz
tar -xf pseint.tgz
cp pseint/bin/pseint "${pkg}/usr/local/bin/"
main: "main.psc"
template: |
Proceso Main

View File

@ -5,14 +5,41 @@ aliases:
name: "PureScript"
install:
prepare:
apt:
- libtinfo5
npm:
- purescript
- spago
apt:
- libtinfo5
npm:
- purescript
- spago
manual: |
install -d "${pkg}/opt/purescript"
mkdir skel
pushd skel
spago init -C
rm -rf .gitignore test
sed -i 's#, "test/\*\*/\*\.purs"##' spago.dhall
cat <<"EOF" > src/Main.spago
import Prelude
import Effect (Effect)
main :: Effect Unit
main = pure unit
EOF
spago build
spago repl < /dev/null
rm -rf src
popd
cp -R skel "${pkg}/opt/purescript/"
setup: |
shopt -s dotglob; cp -R /opt/purescript/project-template/* "$PWD/"
shopt -s dotglob; cp -R /opt/purescript/skel/* "$PWD/"
repl: |
spago repl

View File

@ -5,11 +5,23 @@ aliases:
name: "Q#"
install:
prepare:
apt:
- $(grep-aptavail -wF Package "dotnet-sdk-[0-9.]+" -s Package -n | sort -Vr | head -n1)
apt:
- $(grep-aptavail -eF Package "^dotnet-sdk-[0-9.]+$" -s Package -n | sort -Vr | head -n1)
- $(grep-aptavail -wF Package "dotnet-sdk-[0-9.]+" -s Package -n | sort -Vr | head -n1)
manual: |
install -d "${pkg}/opt/qsharp"
dotnet new -i Microsoft.Quantum.ProjectTemplates
dotnet new console -lang Q# -o main
cp -R main "${pkg}/opt/qsharp/skel"
rm "${pkg}/opt/qsharp/skel/Program.qs"
cp -R "$HOME/.dotnet" "${pkg}/opt/qsharp/dotnet"
chmod -R a=u,go-w "${pkg}/opt/qsharp/dotnet"
setup: |
cp -R /opt/qsharp/dotnet ./.dotnet && cp -R /opt/qsharp/project-template/* ./
cp -R /opt/qsharp/dotnet ./.dotnet && cp -R /opt/qsharp/skel/* ./
main: "Main.qs"
template: |

View File

@ -6,14 +6,14 @@ name: "Ratfor"
install:
apt:
- ratfor
- flang
- gfortran
main: "main.r"
template: |
print *, 'Hello, world!'
end
PRINT *, 'Hello, world!'
END
compile: |
ratfor main.r -o main.f && flang main.f -o main
ratfor main.r -o main.f && gfortran main.f -o main
run: |
./main

View File

@ -8,10 +8,31 @@ aliases:
name: "ReasonML"
install:
prepare:
apt:
- yarn
npm:
- bs-platform
npm:
- bs-platform
opam:
- reason
- name: reason
binaries:
- refmt
manual: |
install -d "${pkg}/opt/reasonml/skel"
install -d "${pkg}/usr/local/bin"
ver="$(latest_release jaredly/reason-language-server)"
wget "https://github.com/jaredly/reason-language-server/releases/download/${ver}/rls-linux.zip"
unzip rls-linux.zip
cp rls-linux/reason-language-server "${pkg}/usr/local/bin/"
pushd "${pkg}/opt/reasonml/skel"
bsb -init .
cat bsconfig.json | jq '.name = "riju-project"' | sponge bsconfig.json
yarn install
popd
main: "main.re"
template: |
@ -30,7 +51,7 @@ format:
lsp:
setup: |
cp -a /opt/reasonml/project-template/* ./
cp -a /opt/reasonml/skel/* ./
start: |
reason-language-server

View File

@ -1,6 +1,15 @@
id: "rebol"
name: "REBOL"
install:
manual: |
install -d "${pkg}/usr/local/bin"
file="$(curl -sSL http://www.rebol.com/downloads.html | sed '0,/x86-64/d' | grep -Eo 'downloads/[^"]+' | head -n1)"
wget "http://www.rebol.com/${file}" -O rebol.tar.gz
tar -xf rebol.tar.gz
cp rebol-core/rebol "${pkg}/usr/local/bin/"
repl: |
rebol

View File

@ -4,12 +4,23 @@ name: "Red"
install:
apt:
- libcurl5:i386
manual: |
install -d "${pkg}/opt/red/skel"
install -d "${pkg}/usr/local/bin"
path="$(curl -sSL https://static.red-lang.org/download.html | grep -Eo '/dl/linux/[^"]+' | head -n1)"
wget "https://static.red-lang.org/${path}" -O red
chmod +x red
cp red "${pkg}/usr/local/bin/"
./red <<< quit
cp -R "$HOME/.red" "${pkg}/opt/red/skel/"
setup: |
cp -R /opt/red/template .red
shopt -s dotglob; cp -R /opt/red/skel/* ./
repl: |
/usr/local/bin/red
red
input: |
DELAY: 1
123 * 234
@ -21,4 +32,4 @@ template: |
print "Hello, world!"
run: |
/usr/local/bin/red main.red; /usr/local/bin/red
red main.red; red

View File

@ -6,6 +6,9 @@ name: "Ruby"
monacoLang: ruby
install:
prepare:
apt:
- ruby-dev
apt:
- ruby
gem:

View File

@ -5,6 +5,23 @@ aliases:
name: "Rust"
monacoLang: rust
install:
manual: |
install -d "${pkg}/usr/local/bin"
export CARGO_HOME="${pkg}/opt/rustup"
export RUSTUP_HOME="${pkg}/opt/rustup"
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path
"${pkg}/opt/rustup/bin/rustup" component add rls rust-analysis rust-src
ls "${pkg}/opt/rustup/bin" | while read name; do
cat <<EOF > "${pkg}/usr/local/bin/${name}"
#!/usr/bin/env bash
exec env RUSTUP_HOME=/opt/rustup "/opt/rustup/bin/${name}" "\$@"
EOF
chmod +x "${pkg}/usr/local/bin/${name}"
done
main: "main.rs"
template: |
fn main() {

View File

@ -4,8 +4,29 @@ aliases:
name: "SageMath"
install:
apt:
- sagemath
manual: |
sudo tee -a /etc/apt/sources.list.d/focal.list >/dev/null <<EOF
deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal main universe
EOF
sudo apt-get update
for name in libflint-2.5.2 libgsl23 sagemath sagemath-common; do
apt-get download "${name}"
mv "${name}"_*.deb "${name}.deb"
done
deb:
- sagemath.deb
- sagemath-common.deb
- libflint-2.5.2.deb
- libgsl23.deb
depends:
strip:
- sagemath-common
- libflint-2.5.2
- libgsl23
unpin:
- libgslcblas0
repl: |
sage

View File

@ -1,6 +1,13 @@
id: "setl"
name: "SETL"
install:
manual: |
install -d "${pkg}/usr/local/bin"
wget https://setl.org/setl/bin/Linux-x86-64bit/setlbin.tgz
tar -xf setlbin.tgz -C "${pkg}/usr/local/bin"
main: "main.setl"
template: |
print("Hello, world!");

View File

@ -9,7 +9,7 @@ install:
prepare:
apt:
- luarocks
- $(grep-aptavail -eF 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)
- $(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:
- texlive-binaries

View File

@ -19,6 +19,7 @@ function makeLangScript(langConfig, isShared) {
const { id, name, install } = langConfig;
let parts = [];
let depends = [];
const dependsCfg = (install && install.depends) || {};
if (
install &&
((install.prepare &&
@ -38,23 +39,30 @@ sudo apt-get update`);
riju,
npm,
pip,
gem,
cpan,
opam,
files,
scripts,
manual,
deb,
} = install;
if (prepare) {
const { apt, manual } = prepare;
const { apt, npm, manual } = prepare;
if (apt && apt.length > 0) {
parts.push(`\
sudo apt-get install -y ${apt.join(" ")}`);
}
if (npm && npm.length > 0) {
parts.push(`\
sudo npm install -g ${npm.join(" ")}`);
}
if (manual) {
parts.push(manual);
}
}
if (npm) {
if (npm && npm.length > 0) {
depends.push("nodejs");
for (let fullname of npm) {
let arg;
if (typeof fullname === "string") {
@ -78,7 +86,8 @@ if [[ -d "$\{pkg}/opt/${basename}/bin" ]]; then
fi`);
}
}
if (pip) {
if (pip && pip.length > 0) {
depends.push("python3");
for (const basename of pip) {
parts.push(`\
install -d "\${pkg}/usr/local/bin"
@ -105,15 +114,41 @@ if [[ -d "\${pkg}/opt/${basename}/man" ]]; then
fi`);
}
}
if (cpan) {
if (gem && gem.length > 0) {
depends.push("ruby");
for (const name of gem) {
parts.push(`\
install -d "\${pkg}/usr/local/bin"
gem install "${name}" -i "/opt/${name}" -n "/opt/${name}/bin" --build-root "\${pkg}"
if [[ -d "\${pkg}/opt/${name}/bin" ]]; then
(
set +e
ls "\${pkg}/opt/${name}/gems/${name}"-*/bin
ls "\${pkg}/opt/${name}/gems/${name}"-*/exe
true
) | while read name; do
if [[ -x "\${pkg}/opt/${name}/bin/\${name}" ]]; then
cat <<EOF > "\${pkg}/usr/local/bin/\${name}"
#!/usr/bin/env bash
exec env GEM_PATH="/opt/${name}" "/opt/${name}/bin/\${name}" "\\\$@"
EOF
chmod +x "\${pkg}/usr/local/bin/\${name}"
fi
done
fi`);
}
}
if (cpan && cpan.length > 0) {
depends.push("perl");
for (const fullname of cpan) {
const basename = fullname.replace(/^.+:/, "").toLowerCase();
const basename = fullname.replace(/:+/g, "-").toLowerCase();
parts.push(`\
install -d "\${pkg}/usr/local/bin"
cpanm -l "\${pkg}/opt/${basename}" -n "${fullname}"
if [[ -d "\${pkg}/opt/${basename}/bin" ]]; then
ls "\${pkg}/opt/${basename}/bin" | while read name; do
ls "\${pkg}/opt/${basename}/bin" | (grep -v config_data || true) | while read name; do
version="$(ls "\${pkg}/opt/${basename}/lib" | head -n1)"
cat <<EOF > "\${pkg}/usr/local/bin/\${name}"
#!/usr/bin/env bash
@ -121,18 +156,37 @@ exec env PERL5LIB="/opt/${basename}/lib/\${version}" "/opt/${basename}/bin/\${na
EOF
chmod +x "\${pkg}/usr/local/bin/\${name}"
done
fi
if [[ -d "\${pkg}/opt/${basename}/man" ]]; then
ls "\${pkg}/opt/${basename}/man" | while read dir; do
install -d "\${pkg}/usr/local/man/\${dir}"
ls "\${pkg}/opt/${basename}/man/\${dir}" | while read name; do
ln -s "/opt/${basename}/man/\${dir}/\${name}" "\${pkg}/usr/local/man/\${dir}/\${name}"
done
done
fi`);
}
}
if (opam && opam.length > 0) {
depends.push("ocaml-nox");
for (let opts of opam) {
if (typeof opts === "string") {
opts = { name: opts, binaries: [opts] };
}
const { name, source, binaries } = opts;
let installCmd;
if (source) {
installCmd = `opam pin add "${name}" "${source}" -y --root "\${pkg}/opt/${name}"`;
} else {
installCmd = `opam install "${name}" -y --root "\${pkg}/opt/${name}"`;
}
parts.push(`\
install -d "\${pkg}/usr/local/bin"
opam init -n --disable-sandboxing --root "\${pkg}/opt/${name}"
${installCmd}`);
parts.push(
binaries
.map(
(binary) =>
`ln -s "/opt/${name}/default/bin/${binary}" "\${pkg}/usr/local/bin/"`
)
.join("\n")
);
}
}
if (files) {
for (const [file, contents] of Object.entries(files)) {
const path = "${pkg}" + file;
@ -163,6 +217,9 @@ chmod +x "${path}"`);
if (apt) {
depends = depends.concat(apt);
}
if (dependsCfg.unpin) {
depends = depends.concat(dependsCfg.unpin);
}
if (riju) {
depends = depends.concat(riju.map((name) => `riju-shared-${name}`));
}
@ -174,8 +231,9 @@ chmod +x "${path}"`);
}
parts.push(`depends=(${depends.map((dep) => `"${dep}"`).join(" ")})`);
let stripDependsFilter = "";
if (install && install.stripDepends && install.stripDepends.length > 0) {
stripDependsFilter = ` | sed -E 's/(^| )(${install.stripDepends.join(
const stripDepends = (dependsCfg.strip || []).concat(dependsCfg.unpin || []);
if (stripDepends.length > 0) {
stripDependsFilter = ` | sed -E 's/(^| )(${stripDepends.join(
"|"
)}) *(\\([^)]*\\))? *(,|$)/\\1/g' | sed -E 's/^ *//g'`;
}
@ -187,7 +245,7 @@ Maintainer: Radon Rosborough <radon.neon@gmail.com>
Description: The ${name} ${
isShared ? "shared dependency" : "language"
} packaged for Riju
Depends: \$(IFS=,; echo "\${depends[*]}" | sed -E 's/,([^ ])/, \\1/g'${stripDependsFilter} | sed -E 's/ +/ /g')
Depends: \$(IFS=,; echo "\${depends[*]}" | sed -E 's/,([^ ])/, \\1/g'${stripDependsFilter} | sed -E 's/ +/ /g' | sed -E 's/ *, *$//')
Riju-Script-Hash: \$(sha1sum "\$0" | awk '{ print \$1 }')`;
parts.push(`\
install -d "\${pkg}/DEBIAN"