Some initial progress
This commit is contained in:
parent
ceb88d65ad
commit
2759e4df69
|
@ -0,0 +1,2 @@
|
|||
*.log
|
||||
node_modules
|
|
@ -0,0 +1,9 @@
|
|||
export PATH := bin:$(PATH)
|
||||
|
||||
.PHONY: build-image
|
||||
build-image:
|
||||
docker build . -f docker/Dockerfile.build -t riju:build
|
||||
|
||||
.PHONY: build-shell
|
||||
build-shell: build-image
|
||||
docker run -it --rm -v $(PWD):/src riju:build
|
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
if [[ "${OSTYPE:-}" != darwin* ]] && [[ "${EUID}" != 0 ]]; then
|
||||
exec sudo -E docker "$@"
|
||||
else
|
||||
exec docker "$@"
|
||||
fi
|
|
@ -0,0 +1,28 @@
|
|||
const fs = require("fs").promises;
|
||||
const process = require("process");
|
||||
|
||||
const YAML = require("yaml");
|
||||
|
||||
async function main() {
|
||||
const args = process.argv.slice(2);
|
||||
|
||||
if (args.length !== 1) {
|
||||
console.error("usage: debug.js LANG");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const [lang] = args;
|
||||
|
||||
console.log(
|
||||
JSON.stringify(
|
||||
YAML.parse(await fs.readFile(`langs/${lang}.yaml`, "utf-8")),
|
||||
null,
|
||||
2
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
main().catch((err) => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
|
@ -0,0 +1,9 @@
|
|||
FROM ubuntu:rolling
|
||||
|
||||
COPY docker/scripts/build/install.bash /tmp/
|
||||
RUN /tmp/install.bash
|
||||
|
||||
WORKDIR /src
|
||||
COPY docker/scripts/build/pid1.bash /usr/local/sbin/
|
||||
ENTRYPOINT ["/usr/local/sbin/pid1.bash"]
|
||||
CMD ["bash"]
|
|
@ -0,0 +1,30 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euxo pipefail
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
apt-get update
|
||||
(yes || true) | unminimize
|
||||
|
||||
apt-get install -y curl gnupg lsb-release
|
||||
|
||||
curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
|
||||
curl -sSL 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)"
|
||||
|
||||
tee -a /etc/apt/sources.list.d/custom.list >/dev/null <<EOF
|
||||
deb https://deb.nodesource.com/${node_repo} ${ubuntu_name} main
|
||||
deb https://dl.yarnpkg.com/debian/ stable main
|
||||
EOF
|
||||
|
||||
apt-get update
|
||||
apt-get install -y fakeroot less make man nodejs yarn
|
||||
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
rm "$0"
|
|
@ -0,0 +1,8 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
groupadd -g "$(stat -c %g "$PWD")" -o -p '!' -r riju
|
||||
useradd -u "$(stat -c %u "$PWD")" -g "$(stat -c %g "$PWD")" -o -m -N -l -s /usr/bin/bash riju
|
||||
|
||||
exec runuser -u riju -g riju "$@"
|
|
@ -0,0 +1,54 @@
|
|||
id: python
|
||||
aliases:
|
||||
- py
|
||||
- python2
|
||||
- python3
|
||||
name: Python
|
||||
monacoLang: python
|
||||
|
||||
install:
|
||||
apt:
|
||||
- python3
|
||||
- python3-pip
|
||||
pip:
|
||||
- black
|
||||
manual:
|
||||
- |
|
||||
xml="$(curl -sSL "https://pvsc.blob.core.windows.net/python-language-server-stable?restype=container&comp=list&prefix=Python-Language-Server-linux-x64")"
|
||||
nupkg="$(echo "$xml" | grep -Eo 'https://[^<]+\.nupkg' | tail -n1)"
|
||||
wget "${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/local/bin/Microsoft.Python.LanguageServer
|
||||
|
||||
repl: >-
|
||||
python3 -u
|
||||
main: "main.py"
|
||||
template: |
|
||||
print("Hello, world!")
|
||||
run: "python3 -u -i main.py"
|
||||
scope:
|
||||
code: |
|
||||
x = 123 * 234
|
||||
|
||||
format:
|
||||
run: >-
|
||||
black -
|
||||
input: |
|
||||
print('Hello, world!')
|
||||
|
||||
pkg:
|
||||
install: "pip3 install --user NAME"
|
||||
uninstall: "pip3 uninstall NAME"
|
||||
search: >-
|
||||
python3 -c 'import json; from xmlrpc import client; print(json.dumps(client.ServerProxy("https://pypi.org/pypi").search({"name": "NAME"})))' | jq -r 'map(.name) | .[]'
|
||||
|
||||
lsp:
|
||||
start: "Microsoft.Python.LanguageServer"
|
||||
init:
|
||||
interpreter:
|
||||
properties:
|
||||
InterpreterPath: "/usr/bin/python3"
|
||||
code: |
|
||||
import func
|
||||
item: "functools"
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"name": "riju",
|
||||
"version": "0.0.0",
|
||||
"license": "MIT",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"yaml": "^1.10.0"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
yaml@^1.10.0:
|
||||
version "1.10.0"
|
||||
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e"
|
||||
integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==
|
Loading…
Reference in New Issue