Skip to content

Latest commit

 

History

History
34 lines (26 loc) · 1.08 KB

README.md

File metadata and controls

34 lines (26 loc) · 1.08 KB

Epitech Shell | 42sh

Description of the project

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

Objectives of the project

Mandatory:

  • spaces and tabs
  • $PATH and environment
  • errors and return value
  • redirections (‘<’, ‘>’, ‘<<’ and ‘>>’)
  • pipes (‘|’)
  • builtins: cd, echo, exit, setenv, unsetenv
  • separators: ‘;’, ‘&&’, ‘||’

Optional:

  • inhibitors (‘\’)
  • job control (‘&’, fg)
  • variables (local and env)
  • history (‘!’)
  • aliases
  • line edition (multiline, dynamic rebinding, auto-completion dynamic)

Bonus features:

  • Integration tests
  • Project organization (through volta)
  • Custom prompt