-FROM centos:8 AS builder
-RUN dnf -y install cmake gcc gcc-c++ git readline-devel make
+FROM debian:buster-slim AS builder
+RUN apt-get update && apt-get install -y cmake gcc g++ git libreadline-dev make
RUN git clone https://codeberg.org/armaan/gen-shell.git /app
WORKDIR /app
RUN cmake --configure .
RUN cmake --build .
-FROM centos:8
-RUN dnf -y install readline cpp
+FROM debian:buster-slim AS run
+RUN apt-get update && apt-get install -y cpp libreadline7 libncurses6
WORKDIR /app
COPY --from=builder /app/src/gen-shell .
ENTRYPOINT ./gen-shell $CMD
# gen-shell
![Jenkins](https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fbuild.bhojwani.org%2Fjob%2Fgen-shell%2F)
-=== WORK IN PROGRSS ===
+=== WORK IN PROGRESS ===
A simple way to turn any command into a shell with arrow key/history suppoert. This is a fork of [taskshell](https://github.com/GothenburgBitFactory/taskshell) with a highly reduce codebase.
## Usage
## Installation
### Binaries
-Binaries can be downloaded [from here](https://build.bhojwani.org/job/gen-shell/lastSuccessfulBuild/artifact/build/src/gen-shell). Note that these binaries are compiled against libreadline7, so if your system only has libreadline8, you should symlink 8 to 7 with `sudo ln -s /usr/lib/x86_64-linux-gnu/libreadline.so.8.0 /usr/lib/x86_64-linux-gnu/libreadline.so.7`. This isn't a great solution, but it gets the job done.
-
+Binaries can be downloaded [from here](https://build.bhojwani.org/job/gen-shell/lastSuccessfulBuild/artifact/build/src/gen-shell). Note that these binaries are compiled against libreadline7, so if your system only has libreadline8, you can symlink 8 to 7 with `sudo ln -s /usr/lib/x86_64-linux-gnu/libreadline.so.8.0 /usr/lib/x86_64-linux-gnu/libreadline.so.7`. This isn't a great solution, but it gets the job done.
### From source
If you would like to avoid this, you can build from source. Doing so requires:
- - CMake
- - g++
- - libreadline development files
-
-```bash
+ - cmake
+ - make
+ - gcc
+ - g++ (sometimes packaged as gcc-c++ or gcc-g++)
+ - cpp 11 or higher
+ - libreadline development files (7 or 8 is fine)
+```
git clone https://codeberg.org/armaan/gen-shell
cd gen-shell
cmake .
### Docker
You can also run gen-shell in docker. Simply use
-```bash
+```
docker run -it -e CMD=<command to run> armaanb/gen-shell:latest
```