mirror of
https://github.com/arkenfox/user.js.git
synced 2025-04-06 21:33:42 -04:00
Shell script rewrite to comply with POSIX and best practices.
The rewrite is focused on the following five areas of interest: 1. Portability. The scripts have been tested to work in recent versions of the following operating systems and shells: macOS, Linux (Fedora, Debian, Ubuntu, openSUSE, Arch, Alpine, NixOS), BSD (FreeBSD, OpenBSD, NetBSD, DragonFly), SunOS (Solaris, OpenIndiana), Haiku; bash, dash, ash, ksh, oksh, zsh, XPG4 sh, pdksh, mksh, yash, posh, gwsh, bosh, osh. 2. Robustness. Employ secure shell scripting techniques, incorporate battle-tested open source code, clear all ShellCheck warnings, and fail early. 3. Composability. Put (almost) everything inside functions and make the scripts dot source friendly. 4. Consistency. Use tput to abstract away terminal color codes, write templated diagnostic messages and follow conventions in the use of exit status and redirections. 5. Readability. Comment extensively, assign descriptive names to variables and functions, and use here-documents to ease reading and writing multi-line messages. Known behavioral changes: 1. There are changes to the way some options are parsed and acted on. For example, when both the -l and -p options are specified, -l will be ignored; in the old behavior, the last specified option would take effect. Also, an old quirk where passing the argument 'list' to -p was equivalent to specifying the -l option has been fixed. 2. The -h, -l and -p options of updater.sh have been added to prefsCleaner.sh as well. 3. All temporary files are now created using mktemp and no longer actively deleted, so users won't find them in the working directory anymore in the case of error. 4. The old prefs.js cleaning logic, which relied on non-POSIX features, is not preserved in the rewrite. Resolves #1855 Resolves #1446 Fixes #1810
This commit is contained in:
parent
eae5762d29
commit
481c45397b
1250
prefsCleaner.sh
1250
prefsCleaner.sh
File diff suppressed because it is too large
Load Diff
1728
updater.sh
1728
updater.sh
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user