Browse Source

my-ls-1

content-update^2
user 2 years ago
parent
commit
8d7b5d053e
  1. 57
      subjects/my-ls-1/README.md
  2. 121
      subjects/my-ls-1/audit/README.md

57
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.

121
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: `"<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…
Cancel
Save