From 8d7b5d053ea3d7a2ece38eb02aad30abb1de3aee Mon Sep 17 00:00:00 2001 From: user Date: Thu, 24 Feb 2022 11:29:47 +0000 Subject: [PATCH] my-ls-1 --- subjects/my-ls-1/README.md | 57 +++++++++++++++ subjects/my-ls-1/audit/README.md | 121 +++++++++++++++++++++++++++++++ 2 files changed, 178 insertions(+) create mode 100644 subjects/my-ls-1/README.md create mode 100644 subjects/my-ls-1/audit/README.md diff --git a/subjects/my-ls-1/README.md b/subjects/my-ls-1/README.md new file mode 100644 index 00000000..51f66245 --- /dev/null +++ b/subjects/my-ls-1/README.md @@ -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. diff --git a/subjects/my-ls-1/audit/README.md b/subjects/my-ls-1/audit/README.md new file mode 100644 index 00000000..9aab22c7 --- /dev/null +++ b/subjects/my-ls-1/audit/README.md @@ -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: `""`. + +###### Does it display the same file? + +##### Run both my-ls and the system command `ls` with the 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 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 "`. + +###### Does it display the same file with the same display? + +##### Run both my-ls and the system command `ls` with the arguments: `"-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 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 "`. + +###### 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 "`, 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 -a "` + +###### Is the output displayed the same way? + +##### Run both my-ls and the system command ls with the arguments: `"-lR ////// //"` + +###### 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 "`, 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 /"` + +###### 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 "` + +###### 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 /"` + +###### 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 "` + +###### 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?