From a2a51b77a5534978f30f2788f7ed9cbe4fda3089 Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Mon, 14 Sep 2020 20:48:50 +0200 Subject: Removing path hash table, replacing it by brute force search --- README.md | 64 +++++++++++++++++++++------------------------------------------ 1 file changed, 21 insertions(+), 43 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index d9f52cd..9df33be 100644 --- a/README.md +++ b/README.md @@ -1,52 +1,30 @@ # minishell -minishell project of school 42 +minishell project of school 42. -## Testing +## Authors + +* [nahaddac](https://github.com/nass1pro) +* [cacharle](https://github.com/cacharle) +## Usage + +```sh +$ make +$ ./minishell ``` ->make test + +## Testing + +Done with [minishell\_test](https://github.com/cacharle/minishell_test). + +```sh +$ git submodule update minishell_test +$ cd minishell_test +$ ./run ``` ## Documentation -Generate with `make doc` (clean with `make doc_clean`). -You can then read the man pages in ./doc/man or open ./doc/html/index.html in your browser. - -## TODO - -### Mandatory - -- [x] Show a prompt when waiting for a new command -- [x] Search and launch the right executable (based on the *PATH* variable or by using relative or absolute path) like in bash -- [ ] It must implement the builtins like in bash: - - [x] `echo` with option `-n` - - [ ] `cd` without `-` option - - [ ] `pwd` without any options - - [x] `export` without any options - - [x] `unset` without any options - - [ ] `env` without any options and any arguments - - [x] `exit` without any options -- [x] `;` in the command should separate commands like in bash -- [x] `'` and `"` should work like in bash except for multiline commands -- [ ] Redirections `<` `>` `>>` should work like in bash except for file descriptor aggregation -- [ ] Pipes | should work like in bash -- [x] Environment variables (`$` followed by characters) should work like in bash -- [ ] `$?` should work like in bash -- [ ] `ctrl-C`, `ctrl-D` and `ctrl-\` should have the same result as in bash - -### Bonus - -- [ ] Redirection `<<` like in bash -- [ ] History and line editing with Termcaps (`man tgetent` for examples) - - [ ] Edit the line where the cursor is located. - - [ ] Move the cursor left and right to be able to edit the line at a specific location. - Obviously new characters have to be inserted between the existing ones similarly to a classic shell. - - [ ] Use up and down arrows to navigate through the command history which we will then be able to edit if we feel like it (the line, not the history). - - [ ] Cut, copy, and/or paste all or part of a line using the key sequence you prefer. - - [ ] Move directly by word towards the left or the right using ctrl+LEFT and ctrl+RIGHT. - - [ ] Go directly to the beginning or the end of a line by pressing `home` and `end`. - - [ ] Write AND edit a command over a few lines. In that case, we would love that ctrl+UP and ctrl+DOWN allow - to go from one line to another in the command while remaining in the same column or otherwise the most appropriate column. -- [ ] &&, || with parenthesis for priorities, like in bash -- [x] wilcard * like in bash +Generate with `make doc` (clean with `make doc_clean`). +You can then read the man pages in `./doc/man` or open `./doc/html/index.html` in your browser. -- cgit