forked from root/public
Ihab
2 years ago
committed by
GitHub
13 changed files with 193 additions and 19 deletions
@ -0,0 +1,57 @@
|
||||
## my-ls |
||||
|
||||
### Objectives |
||||
|
||||
- my-ls consists on creating your own `ls` command. |
||||
|
||||
- The `ls` command shows you the files and folders of the directory specified after the command. By exclusion of this directory, it shows the files and folders of the present directory. |
||||
|
||||
- The behavior of your `ls` must be identical to the original `ls` command with the following variations : |
||||
- You must incorporate in your project at least the following flags of the `ls` command : |
||||
- `-l` |
||||
- `-R` |
||||
- `-a` |
||||
- `-r` |
||||
- `-t` |
||||
- Note that you can use various flags, in various ways, just like in `ls`. |
||||
- When it comes to the `ls -l` display, it must be identical to the system command. |
||||
- Other flags displays are up to you. |
||||
|
||||
### Instructions |
||||
|
||||
- Your project must be written in **Go**. |
||||
- The code must respect the [**good practices**](../good-practices/README.md). |
||||
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test). |
||||
|
||||
### Allowed packages |
||||
|
||||
- fmt |
||||
- os |
||||
- os/user |
||||
- strconv |
||||
- strings |
||||
- syscall |
||||
- time |
||||
- math/rand |
||||
- errors |
||||
- io/fs |
||||
|
||||
### Hint |
||||
|
||||
- We strongly recommend that you account for the implications of the option `-R` from the very beginning of your code. |
||||
|
||||
- The order that files and folders appear must be taken in consideration. |
||||
|
||||
- We suggest that you consult the `ls` command manual. |
||||
|
||||
### Usage |
||||
|
||||
You can see how the `ls` command works, by using it on your terminal. |
||||
|
||||
This project will help you learn about : |
||||
|
||||
- Unix system |
||||
- Ways to receive data. |
||||
- Ways to output data. |
||||
- Manipulation of strings. |
||||
- Manipulation of structures. |
@ -0,0 +1,121 @@
|
||||
#### Functional |
||||
|
||||
###### Has the requirement for the allowed packages been respected? |
||||
|
||||
##### Run both my-ls and the system command `ls` with no arguments. |
||||
|
||||
###### Does it display the same files and/or folders in the same order? |
||||
|
||||
##### Run both my-ls and the system command `ls` with the arguments: `"<file name>"`. |
||||
|
||||
###### Does it display the same file? |
||||
|
||||
##### Run both my-ls and the system command `ls` with the arguments: `"<directory name>"`. |
||||
|
||||
###### Does it display the same files and/or folders in the same order? |
||||
|
||||
##### Run both my-ls and the system command `ls` with the flag: `"-l"`. |
||||
|
||||
###### Does it display the same files and/or folders with the same display? |
||||
|
||||
##### Run both my-ls and the system command `ls` with the arguments: `"-l <file name>"`. |
||||
|
||||
###### Does it display the same file with the same display? |
||||
|
||||
##### Run both my-ls and the system command `ls` with the arguments: `"-l <directory name>"`. |
||||
|
||||
###### Does it display the same files and/or folders with the same display? |
||||
|
||||
##### Run both my-ls and the system command `ls` with the flag: `"-l /usr/bin"`. |
||||
|
||||
###### Does it display the same files and/or folders with the same display? Be aware of symbolic links. |
||||
|
||||
##### Run both my-ls and the system command `ls` with the flag: `"-R"`, in a directory with folders in it. |
||||
|
||||
###### Does it display the same files and/or folders? |
||||
|
||||
##### Run both my-ls and the system command `ls` with the flag: `"-a"`. |
||||
|
||||
###### Does it display the same files and/or folders in the same order? |
||||
|
||||
##### Run both my-ls and the system command `ls` with the flag: `"-r"`. |
||||
|
||||
###### Does it display the same files and/or folders in the same order? |
||||
|
||||
##### Run both my-ls and the system command `ls` with the flag: `"-t"`. |
||||
|
||||
###### Does it display the same files and/or folders in the same order? |
||||
|
||||
##### Run both my-ls and the system command `ls` with the flag: `"-la"`. |
||||
|
||||
###### Does it display the same files and/or folders in the same order? |
||||
|
||||
##### Run both my-ls and the system command `ls` with the arguments: `"-l -t <directory name>"`. |
||||
|
||||
###### Does it display the same files and/or folders in the same order? |
||||
|
||||
##### Run both my-ls and the system command `ls` with the arguments: `"-lRr <directory name>"`, in which the directory chosen contains folders. |
||||
|
||||
###### Does it display the same files and/or folders in the same order? |
||||
|
||||
##### Run both my-ls and the system command ls with the arguments: `"-l <directory name> -a <file name>"` |
||||
|
||||
###### Is the output displayed the same way? |
||||
|
||||
##### Run both my-ls and the system command ls with the arguments: `"-lR <directory name>///<sub directory name>/// <directory name>/<sub directory name>/"` |
||||
|
||||
###### Is the output displayed the same way? Number of `/` must be the same. |
||||
|
||||
##### Run both my-ls and the system command ls with the arguments: `"-la /dev"` |
||||
|
||||
###### Does it display the same files and/or folders with the same display? Do not pay attention to ACL permission flag. |
||||
|
||||
##### Run both my-ls and the system command ls with the arguments: `"-alRrt <directory name>"`, in which the directory chosen contains folders and files within folders. Time of modification of all files within that folder must be the same. |
||||
|
||||
###### Is the displayed output the same? |
||||
|
||||
##### Create directory with `-` name and run both my-ls and the system command ls with the arguments: `"-"` |
||||
|
||||
###### Is the displayed output the same? |
||||
|
||||
##### Create file and link for this file and run both my-ls-1 and the system command ls with the arguments: `"-l <symlink file>/"` |
||||
|
||||
###### Is the displayed output the same? Pay attention to `/` at the end. |
||||
|
||||
##### Create file and link for this file and run both my-ls-1 and the system command ls with the arguments: `"-l <symlink file>"` |
||||
|
||||
###### Is the displayed output the same? |
||||
|
||||
##### Create directory that contains files and link for this directory and run both my-ls-1 and the system command ls with the arguments: `"-l <symlink dir>/"` |
||||
|
||||
###### Is the displayed output the same? Pay attention to `/` at the end. |
||||
|
||||
##### Create directory that contains files and link for this directory and run both my-ls-1 and the system command ls with the arguments: `"-l <symlink dir>"` |
||||
|
||||
###### Is the displayed output the same? |
||||
|
||||
###### As an auditor, is this project up to every standard? If not, why are you failing the project?(Empty Work, Incomplete Work, Invalid compilation, Cheating, Crashing, Leaks) |
||||
|
||||
#### General |
||||
|
||||
###### +Does the program runs with colors as in the ls command? |
||||
|
||||
###### +Does the program has other flags except for the mandatory ones? |
||||
|
||||
##### Try running the program with `"-R ~"` and with the command time before the program name (ex: "time ./my-ls-1 -R ~"). |
||||
|
||||
###### +Is the real time less than 1,5 seconds? |
||||
|
||||
#### Basic |
||||
|
||||
###### +Does the code obey the [good practices](../../good-practices/README.md)? |
||||
|
||||
###### +Is there a test file for this code? |
||||
|
||||
###### +Are the tests checking each possible case? |
||||
|
||||
#### Social |
||||
|
||||
###### +Did you learn anything from this project? |
||||
|
||||
###### +Would you recommend/nominate this program as an example for the rest of the school? |
Loading…
Reference in new issue