Command-line Bash Script
Create a script called MakeProject.sh that will be used by you to automate the process of creating well formed software development directories.
This bash script will be used at the command-line as follows: ./MakeProject.sh name Where name is provided by the user at the command-line and is the project name. The project name must be a single word (it cannot have spaces or other white characters).
The script will do the following in this order:
- Using absolute path the script changes directory to your home directory.
- Next it verifies whether a subdirectory called project If it does not exist it creates that directory.
- Next it changes directory moving into the project subdirectory using relative path.
- Next it verifies whether a subdirectory called cs206 If it does not exist it creates that directory.
- Next it changes directory moving into the cs206 subdirectory using relative path.
- Next it verifies whether a subdirectory called name (ie. The word the user provided at the command-line) exists.
- If it does exist then the script terminates with an error message: “This project name has already been used.”.
- If it does not exit, it then creates the subdirectory and below that directory it creates the following additional subdirectories within the project directory: archive, backup, docs, assets, database, and source.
- Next it changes directory moving into the source subdirectory using relative path.
- Finally, the bash script generates (does not copy from another location) a Bash script file called sh and this script file simply copies all the files with the file extension .c and .h into the backup directory using relative paths. The user would run this script from within the source directory by typing: ./backup.sh • The script terminates by displaying: “You project directories have been created.”
Vybihal Page 1 of 2 9-22-2017 McGill University COMP 206 School of Computer Science
WHAT TO HAND IN
Everything must be submitted to My Courses before the due date. Remember that you can hand in your assignment up to two days late but there will be a penalty of 5% each day. After that, your assignment will not be accepted. Please hand in the following:
- A single Bash script called MakeProject.sh
HOW IT WILL BE GRADED
The assignment is worth a total of 20 points.
- 4 points – Changing directories o 5 points – Testing existence of directories o 4 points – Creating directories o 2 points – Displaying error messages
- 5 points – Creating the backup.sh script programmatically
The following rules are followed by the TA when grading assignments:
- A program must run in order to get a grade (even if it does not run well). If it does not run (does not compile) it will receive a zero. (Make sure to run your programs from Trottier – they sometimes do not run the same from home when logging in using putty.)
- The TA will grade using the linux.cs.mcgill.ca server.
- All questions are graded proportionally (assuming the program runs at all). This means that if 40% of the question is correct, you will receive 40% of the grade.
Vybihal Page 2 of 2 9-22-2017