Corning Community College CSCS1730 UNIX/Linux Fundamentals ~~TOC~~ ======Project: ANOTHER PUZZLEBOX (pbx1)====== =====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===== The first puzzlebox was in many ways a test of your observational skills. To many, the frustrations emerged from what was being taken for granted. But once you took proper notice, and could apply the appropriate skills, its secrets could be obtained. This second puzzlebox will test both your observation skills (in a slightly different way) and reasoning skills in an abstract manner. Along with that, your scripting skills are being put to the test as well: your submission will more heavily rely upon a fully functional steps file that will entirely automate the process. If you are observant, the information you need is presented early on, but is a few layers of abstraction out of reach. Patience and perseverance will be key to victory. =====Obtain the file===== This week's project is located in the **pbx1/** sub-directory of the UNIX Public Directory, under a directory by the name of your username, in a file called (unoriginally): **pbx1.zip** 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/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 **pbx1steps** 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: * wildcards * variables * I/O redirection 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 **md5sum** 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 **pbx1steps** 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 see an ordered english-readable file with ASCII art in it, you have reached the conclusion of the unraveling. Submit that file (by the appropriate name), along with the **pbx1steps** file. You should get some sort of confirmation indicating successful submission (actually, two) if all went according to plan. If not, check for typos and or locational mismatches. I'll be looking for the following: 52:pbx1:final tally of results (52/52) *:pbx1:submitted result.txt file via submit tool [4/4] *:pbx1:result.txt is correctly unscrambled and assembled [4/4] *:pbx1:result.txt md5sum matches project MANIFEST [4/4] *:pbx1:submitted pbx1steps file via submit tool [8/8] *:pbx1:pbx1steps contains valid list of instructions [8/8] *:pbx1:pbx1steps uses shell features [4/4] *:pbx1:data file in public dir copied with absolute path [4/4] *:pbx1:all other paths in pbx1steps are relative [4/4] *:pbx1:if executed pbx1steps automates the project [8/8] *:pbx1:project files commit and pushed to repository [4/4]