rash, the rat ass shell, is a rudimentary shell written in C
| .woodpecker | ||
| doc | ||
| examples | ||
| src | ||
| .clang-format | ||
| .clang-tidy | ||
| .envrc | ||
| .gitignore | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| Makefile | ||
| package.nix | ||
| README.md | ||
rash, the rat ass shell, is a rudimentary shell written in C.
Features
While not as featureful as other shells, rash is still very usable.
Some of rash's current features include:
- Environment variable modification
- Shell variables
- Globbing (using wildcards to match files)
- Auto Completion
- Job management
- Storing command history
- Custom prompts
- ...and much more!
Getting Started
To build rash, take a look at the build guide.
Once you have built rash, feel free to take a look at the user guide.
Setting up clangd
To setup clangd for this project, you will need to generate a compile_commands.json file.
For this, I use Bear, but you can use other tools if you're more familiar with them.
make clean # make sure no build files exist so that bear knows how to compile all source files
bear -- make # this will generate a compile_commands.json in the root of the project
You can also specify make flags here, for example:
bear -- make ERROR_HELL=1 # this will generate a compile_commands.json with all errors enabled (not recommended for development)
For more if more info on make flags, check out the build guide.
Once you have a compile_commands.json file in the root of the project, clangd should work fine.
