Corning Community College
CSCS1730 UNIX/Linux Fundamentals
======Project: ANOTHER PUZZLEBOX (pbx2)======
=====Errata=====
* any bugfixes or project updates will be posted here
=====Objective=====
To continue to cultivate your problem solving skills, and to demonstrate your basic scripting skills for task automation.
=====Commentary=====
We're now onto our third glorious puzzlebox of the semester; each one commanding the respect of more and more of your observational, critical thinking, and abstraction skills.
Be sure you stop and reflect upon the particular actions you go through, as well as realizations you have while accomplishing the puzzle: it is insights like these that lead to explosive growth in your abilities.
I've gotten a few more questions directed my way. Still perhaps a bit on the timid side. Please: I love questions- the more you ask and explore and realize, the happier that makes me. Even if you think it is an obvious or stupid question. What's the worst that can happen? I don't reply? Seriously- don't struggle thinking you have to figure it out on your own. I mean, you are to do all your own work, but please include asking questions in the discord as baseline aspects of helping you to figure this stuff out.
NOT doing that is actually quite limiting for your progress.
=====Obtain the file=====
This week's project is located in the **pbx2/** sub-directory of the UNIX Public Directory, under a directory by the name of your username.
Make a copy into your home directory somewhere and set to work.
**NOTE:** Hopefully it has been standard practice to locate project files in their own unique subdirectory, such as under **~/src/SEMESTER/unix/**, where you can then add/commit/push the results to your repository (you ARE regularly putting stuff in your repository, aren't you?)
=====Process=====
As with the first puzzle box, you are on your own. Use your skills, your observations, and your experiences gained to unravel this new puzzle.
Be observant, explore ideas, read about and learn how to use various tools (both familiar, but in potentially new/different ways, as well as entirely new tools).
Your **pbx2steps** file is expected to be an operational script that will fully automate the project (from initial copy/creation of local project data directories right up until, but not including, the final submit line).
As such, you are expected to make use of various shell features, such as:
* absolute, relative paths
* wildcards
* variables
* I/O redirection
* any applicable pipes
* comments
These features will also serve to simplify your script, allowing it to be cleaner and less error-prone.
=====Verification=====
The final file, when correctly unscrambled and assembled, can be verified by generating its **sha384sum** hash.
This hash should match the hash stored inside the **MANIFEST** file located in the project directory (in the public directory).
=====Submission=====
In addition to the file produced during the completion of this project, I would also like for you to create a detailed step-by-step text file called **pbx2steps** which includes the valid command-lines that will document for me the steps you took from project commencement through completion. You will submit this file at the end in accordance with the instructions.
When you have a file with a visually consistent, possibly familiar visage made up of ASCII art, you have reached the conclusion of the unraveling (provided it jives with the hash in MANIFEST).
To submit this program to me using the **submit** tool, run the following command at your lab46 prompt:
$ submit unix pbx2 pbx2.results pbx2steps
Submitting unix project "pbx2":
-> pbx2.results(OK)
-> pbx2steps(OK)
SUCCESSFULLY SUBMITTED
You should get some sort of confirmation indicating successful submission if all went according to plan. If not, check for typos and or locational mismatches.
I'll be evaluating the project based on the following criteria:
78:pbx2:final tally of results (78/78)
*:pbx2:pbx2steps contains, generates no errors [13/13]
*:pbx2:pbx2steps successfully unravels the given puzzle [13/13]
*:pbx2:pbx2steps automates solving in non-interactive fashion [13/13]
*:pbx2:project updates committed/pushed to lab46 semester repo [13/13]
*:pbx2:submitted with viable pbx2steps and pbx2.results [13/13]
*:pbx2:pbx2.results matches with hash [13/13]
Additionally:
* Solutions not abiding by **SPIRIT** of project will be subject to a 50% overall deduction
* Solutions not utilizing descriptive why and how **COMMENTS** will be subject to a 25% overall deduction
* Solutions not utilizing **INDENTATION** to promote scope and clarity will be subject to a 25% overall deduction
* Solutions lacking **ORGANIZATION** ior are not easy to read are subject to a 25% overall deduction