34 lines
1.7 KiB
Org Mode
34 lines
1.7 KiB
Org Mode
* 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.
|