The goal of this project is to create a UNIX shell based on tcsh
The project is the following of the minishell1 and minishell2 projects. This project is the last project of the year for the PSU track.
The code architecture is clean and simple and the project is tested with a CI/CD through github actions on every push. Integration tests are also run in order guarantee the robustness of the program
- spaces and tabs
- $PATH and environment
- errors and return value
- redirections (‘<’, ‘>’, ‘<<’ and ‘>>’)
- pipes (‘|’)
- builtins: cd, echo, exit, setenv, unsetenv
- separators: ‘;’, ‘&&’, ‘||’
- inhibitors (‘\’)
- job control (‘&’, fg)
- variables (local and env)
- history (‘!’)
- aliases
- line edition (multiline, dynamic rebinding, auto-completion dynamic)
- Integration tests
- Project organization (through volta)
- Custom prompt