# Functions
CopyDir copies contents of one directory into another, recursively.
CopyFile copy a file from source to destination path.
DirFiles returns list of files found within a given directory and its sub-directories.
DirsEqual checks whether two directories have the same content.
ExpandPath given a string which may be a relative path.
FileExists returns true if a file is not a directory and exists at the specified path.
HandleBackupDir takes an input directory path and either alters its permissions to be usable if it already exists, creates it if not.
HasDir checks if a directory indeed exists at the specified path.
HashDir calculates and returns hash of directory: each file's hash is calculated and saved along with the file name into the list, after which list is hashed to produce the final signature.
HasReadWritePermissions checks if file at a path has proper 0600 permissions set.
HomeDir for a user.
MkdirAll takes in a path, expands it if necessary, and looks through the permissions of every directory along the path, ensuring we are not attempting to overwrite any existing permissions.
ReadFileAsBytes expands a file name's absolute path and reads it as bytes from disk.
RecursiveFileFind searches for file in a directory and its subdirectories.
WriteFile is the static-analysis enforced method for writing binary data to a file in Prysm, enforcing a single entrypoint with standardized permissions.