* Assignment 1 - CS 3424 Name: Price Hiller ABC123: zfp106 Course: CS 3424, Summer 2024 The source code for this assignment can be located at [[https://git.orion-technologies.io/Price/college/src/branch/Development/Summer-2024/CS-3424/Assignments/Assignment-1]] ** Some Notes Many of these files are dependent on one another. For instance, the ~create.bash~ file actually /doesn't/ have built-in capability to create anything on its own. You'll notice how bare bones it is — this is because it is actually wrapping ~update.bash~ which handles creating and updating files. You'll notice something similar going on with the ~enroll.bash~ script as well, which is just wrapping ~update.bash~. To handle state across files, the ~read.bash~ script is using an associative array to store values in a global for the current file context. Very ~C~ style. By reading out of this array we can maintain better create/read/update management across the files. Likewise, you'll notice a distinct lack of ~echo~ command usage. I instead opt for ~printf~ which is better practice and ~cat~ with =heredocs= to output into files. You'll also notice a ~err~ and ~log~ function that are used all over the place, with the intent being that ~assign1.bash~ is the entry point for this program. Attempting to use any script in isolation without ~assign1.bash~ will likely fail in unexpected ways. Another thing to note is at the top of each script I define ~set -eEuo pipefail~ which avoids all sorts of pitfalls when bash scripting, like early exits on failure, failing pipelines, checking unassigned variables, and more. Last thing, I do *not* use the ~source~ command, instead using the better POSIX standard ~.~ to source the various scripts within the assignment.