]> git.armaanb.net Git - gen-shell.git/blobdiff - README.md
added argument parsing with Sarge
[gen-shell.git] / README.md
index 72a4662cfbbc6c001606f5f2d9f9738468f14955..a7d8e301c5152da1e988e80c36ed00c6a21d2281 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,20 +1,45 @@
 # gen-shell
-![Jenkins](https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fbuild.bhojwani.org%2Fjob%2Fgen-shell%2F) 
-A work in progress generic shell. This is a very reduced fork of [taskshell](https://github.com/GothenburgBitFactory/taskshell)
+![Jenkins](https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fbuild.bhojwani.org%2Fjob%2Fgen-shell%2F)  
+A simple way to turn any command into a shell with arrow key/history support. This is a fork of [taskshell](https://github.com/GothenburgBitFactory/taskshell) with a highly reduce codebase.
+
+## Usage
+Just put the command that you want to repeat after `gen-shell`, eg; `gen-shell ls`, or even something much more complex like `gen-shell "cd /home/armaa/Clone/words && /home/armaa/Clone/words/bin/words` This command was actually the inspiration for gen-shell.
 
 ## Installation
-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
+Binaries can be downloaded [from here](https://build.bhojwani.org/job/gen-shell/lastSuccessfulBuild/artifact/build/src/gen-shell). NB: 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
-
-```
+  - cmake (2.8 or higher)
+  - make
+  - gcc
+  - g++ (sometimes packaged as gcc-c++ or gcc-g++)
+  - cpp (11 or higher)
+  - libreadline development files (7 or 8 is fine, 5 is untested)
+```bash
 git clone https://codeberg.org/armaan/gen-shell
 cd gen-shell
-cmake --build .
+cmake .
+make
 sudo cp src/gen-shell /usr/bin/
 ```
 Or if you don't have root access, you can subsitute the last line with
 `cp src/gen-shell ~/.local/bin`
+
+### Docker
+You can also run gen-shell in docker. Simply use
+```bash
+docker run -it -e CMD=<command-to-run> armaanb/gen-shell:latest
+```
+Or to build the docker container locally
+```bash
+git clone https://codeberg.org/armaan/gen-shell
+cd gen-shell
+docker build -t armaanb/gen-shell:latest .
+docker run -it -e CMD=<command-to-run> armaanb/gen-shell
+```
+## License
+Following suit from tasksh, gen-shell is MIT licensed by Armaan Bhojwani, 2020. Gen-shell is forked from tasksh, from which its codebase has been greatly reduced, although the majority of code remaining was written by the tasksh developers [(listed here)](https://github.com/GothenburgBitFactory/taskshell/blob/master/AUTHORS).
+
+Gen-shell uses [Sarge](https://github.com/MayaPosch/Sarge) for parsing command-line arguments. Sarge was written by Maya Posch and is BSD 3-Clause licensed