From 5fbcadad8bad7b8dd7ac3279938ff50db6b5d380 Mon Sep 17 00:00:00 2001 From: retoor <retoor@molodetz.nl> Date: Fri, 28 Mar 2025 02:41:57 +0100 Subject: [PATCH] Terminal Update. --- DockerfileUbuntu | 11 +++++++++++ Makefile | 5 ++++- src/snek/system/terminal.py | 2 +- src/snek/view/terminal.py | 5 ++++- terminal/.bashrc | 5 ----- terminal/r | Bin 77080 -> 0 bytes 6 files changed, 20 insertions(+), 8 deletions(-) create mode 100644 DockerfileUbuntu delete mode 100755 terminal/r diff --git a/DockerfileUbuntu b/DockerfileUbuntu new file mode 100644 index 0000000..45c6038 --- /dev/null +++ b/DockerfileUbuntu @@ -0,0 +1,11 @@ +FROM ubuntu:latest + +RUN apt update && apt install libreadline-dev libcurl4-openssl-dev libssl-dev libncurses5-dev libncursesw5-dev libsqlite3-dev libreadline6-dev zlib1g-dev libbz2-dev libffi-dev liblzma-dev python3 python3-pip python3-venv libjson-c-dev vim htop git curl wget -y + +RUN wget https://retoor.molodetz.nl/api/packages/retoor/generic/r/1.0.0/r + +RUN chmod +x r + +RUN cp r /usr/local/bin + +CMD ["r"] diff --git a/Makefile b/Makefile index c9a7a28..878e699 100644 --- a/Makefile +++ b/Makefile @@ -11,12 +11,15 @@ python: dump: @$(PYTHON) -m snek.dump +build: + + run: $(GUNICORN) -w $(GUNICORN_WORKERS) -k aiohttp.worker.GunicornWebWorker snek.gunicorn:app --bind 0.0.0.0:$(PORT) --reload install: python3.12 -m venv .venv $(PIP) install -e . - + docker build -f DockerfileUbuntu -t snek_ubuntu . diff --git a/src/snek/system/terminal.py b/src/snek/system/terminal.py index 6a91040..80dda17 100644 --- a/src/snek/system/terminal.py +++ b/src/snek/system/terminal.py @@ -32,7 +32,7 @@ class TerminalSession: async def read_output(self, ws): self.sockets.append(ws) - if len(self.sockets) > 1 and self.buffer: + if len(self.sockets) > 1 and self.history: start = 0 try: start = self.history.index(b'\n') diff --git a/src/snek/view/terminal.py b/src/snek/view/terminal.py index fac680c..6596f2c 100644 --- a/src/snek/view/terminal.py +++ b/src/snek/view/terminal.py @@ -30,7 +30,10 @@ class TerminalSocketView(BaseView): user = await self.services.user.get(uid=self.session.get("uid")) root = await self.prepare_drive() - command = f"docker run -v ./{root}/:/root --rm -it --memory 512M --cpus=0.5 -w /root ubuntu:latest /bin/bash" + + + + command = f"docker run -v ./{root}/:/root -it --memory 512M --cpus=0.5 -w /root snek_ubuntu /bin/bash" session = self.user_sessions.get(user["uid"]) if not session: diff --git a/terminal/.bashrc b/terminal/.bashrc index e4022a9..ee7d93f 100644 --- a/terminal/.bashrc +++ b/terminal/.bashrc @@ -92,11 +92,6 @@ if [ -f ~/.bash_aliases ]; then fi -cp ~/r /usr/local/bin - -chmod +x /usr/local/bin/r - -apt update && apt install libreadline-dev libcurl4-openssl-dev libssl-dev libncurses5-dev libncursesw5-dev libsqlite3-dev libreadline6-dev zlib1g-dev libbz2-dev libffi-dev liblzma-dev python3 python3-pip python3-venv libjson-c-dev vim htop git -y echo "R is installed. Type r to run it." diff --git a/terminal/r b/terminal/r deleted file mode 100755 index 2cc65df557ceb3b1c01ca1a024b01a02ff808862..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77080 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