Use system cache and log for homebrew

This commit is contained in:
T. R. Bernstein
2024-06-28 01:43:04 +02:00
committed by T. R. Bernstein
parent b261814a95
commit 30a447b362

View File

@@ -68,6 +68,15 @@ function ensureHomebrewOwnershipAndPermission() {
chmod u=rwx,go=rx ${itemPath} chmod u=rwx,go=rx ${itemPath}
} }
function ensureHomebrewCacheDirectory() {
ensureDirectoryWithDefaultMod "${homebrew_cache}"
runAsHomebrewUser touch "${homebrew_cache}/.cleaned"
}
function ensureHomebrewLogDirectory() {
ensureDirectoryWithDefaultMod ${homebrew_log}
}
function ensureLocalBinFolder() { function ensureLocalBinFolder() {
local folder="/usr/local/bin" local folder="/usr/local/bin"
if [ ! -d "${folder}" ]; then if [ ! -d "${folder}" ]; then
@@ -100,6 +109,8 @@ function createBrewCallerScript() {
sudo -E -u \"${username}\" \"\$0\" \"\$@\" sudo -E -u \"${username}\" \"\$0\" \"\$@\"
exit \$? exit \$?
fi fi
export HOMEBREW_CACHE=\"${homebrew_cache}\"
export HOMEBREW_LOGS=\"${homebrew_log}\"
export HOMEBREW_CASK_OPTS=\"--no-quarantine \${HOMEBREW_CASK_OPTS}\" export HOMEBREW_CASK_OPTS=\"--no-quarantine \${HOMEBREW_CASK_OPTS}\"
export HOMEBREW_NO_AUTO_UPDATE=1 export HOMEBREW_NO_AUTO_UPDATE=1
export HOMEBREW_NO_ANALYTICS=1 export HOMEBREW_NO_ANALYTICS=1
@@ -174,9 +185,11 @@ function configure_system() {
createHomebrewUserIfNeccessary || return 10 createHomebrewUserIfNeccessary || return 10
indicateActivity 'Ensure Homebrew user is in admin group' ensureUserIsInAdminGroup ${homebrew_username} || return 11 indicateActivity 'Ensure Homebrew user is in admin group' ensureUserIsInAdminGroup ${homebrew_username} || return 11
indicateActivity 'Ensure Homebrew user can run passwordless sudo' ensureUserCanRunPasswordlessSudo ${homebrew_username} || return 12 indicateActivity 'Ensure Homebrew user can run passwordless sudo' ensureUserCanRunPasswordlessSudo ${homebrew_username} || return 12
indicateActivity 'Install Homebrew core' installHomebrewCore || return 13 ensureHomebrewCacheDirectory || return 13
indicateActivity 'Create brew caller script' createBrewCallerScript || return 14 ensureHomebrewLogDirectory || return 14
indicateActivity 'Install Homebrew updater' installHomebrewUpdater || return 15 indicateActivity 'Install Homebrew core' installHomebrewCore || return 15
indicateActivity 'Create brew caller script' createBrewCallerScript || return 16
indicateActivity 'Install Homebrew updater' installHomebrewUpdater || return 17
pushd -q / pushd -q /
indicateActivity 'Tapping homebrew/cask' tapHomebrewCask indicateActivity 'Tapping homebrew/cask' tapHomebrewCask
indicateActivity 'Tapping homebrew/cask-fonts' tapHomebrewCaskFonts indicateActivity 'Tapping homebrew/cask-fonts' tapHomebrewCaskFonts
@@ -205,6 +218,14 @@ function getDefaultHomebrewUsername() {
print -- _homebrew print -- _homebrew
} }
function getDefaultHomebrewCachePath() {
print -- /Library/Caches/Homebrew
}
function getDefaultHomebrewLogPath() {
print -- /var/log/Homebrew
}
function getDefaultGitHomebrewCaskURL() { function getDefaultGitHomebrewCaskURL() {
print -- ${HOMEBREW_BREW_CASK_GIT_REMOTE:-https://github.com/Homebrew/homebrew-cask.git} print -- ${HOMEBREW_BREW_CASK_GIT_REMOTE:-https://github.com/Homebrew/homebrew-cask.git}
} }
@@ -220,6 +241,8 @@ function getDefaultGitHomebrewCaskDriversURL() {
function getQuestions() { function getQuestions() {
questions=( questions=(
'i: homebrew-username=What shall the Homebrew user'\''s username be? # default:'"$(getDefaultHomebrewUsername)" 'i: homebrew-username=What shall the Homebrew user'\''s username be? # default:'"$(getDefaultHomebrewUsername)"
'i: homebrew-cache=What shall the Homebrew cache directory be? # default:'"$(getDefaultHomebrewCachePath)"
'i: homebrew-log=What shall the Homebrew log directory be? # default:'"$(getDefaultHomebrewLogPath)"
'i: git-homebrew-cask-remote=Which Git repository shall be used to install Homebrew cask from? # default:'"$(getDefaultGitHomebrewCaskURL)" 'i: git-homebrew-cask-remote=Which Git repository shall be used to install Homebrew cask from? # default:'"$(getDefaultGitHomebrewCaskURL)"
'i: git-homebrew-font-remote=Which Git repository shall be used to install Homebrew cask-fonts from? # default:'"$(getDefaultGitHomebrewCaskFontsURL)" 'i: git-homebrew-font-remote=Which Git repository shall be used to install Homebrew cask-fonts from? # default:'"$(getDefaultGitHomebrewCaskFontsURL)"
'i: git-homebrew-driver-remote=Which Git repository shall be used to install Homebrew cask-drivers from? # default:'"$(getDefaultGitHomebrewCaskDriversURL)" 'i: git-homebrew-driver-remote=Which Git repository shall be used to install Homebrew cask-drivers from? # default:'"$(getDefaultGitHomebrewCaskDriversURL)"
@@ -230,7 +253,7 @@ function getUsage() {
read -r -d '' text <<- USAGE read -r -d '' text <<- USAGE
Usage: Usage:
$cmdName show-questions [<modkey> <modans>]... $cmdName show-questions [<modkey> <modans>]...
$cmdName [-v] [-d FILE] --homebrew-username NAME --git-homebrew-cask-remote URL --git-homebrew-font-remote URL --git-homebrew-driver-remote URL $cmdName [-v] [-d FILE] --homebrew-username NAME --homebrew-cache PATH --homebrew-log PATH --git-homebrew-cask-remote URL --git-homebrew-font-remote URL --git-homebrew-driver-remote URL
Create a designated Homebrew user who may not login to the system but is the Create a designated Homebrew user who may not login to the system but is the
only one able to install homebrew software systemwide. Install Homebrew at only one able to install homebrew software systemwide. Install Homebrew at
@@ -240,6 +263,10 @@ function getUsage() {
--git-homebrew-cask-remote URL Git URL to the Homebrew cask repository [default: $(getDefaultGitHomebrewCaskURL)]. --git-homebrew-cask-remote URL Git URL to the Homebrew cask repository [default: $(getDefaultGitHomebrewCaskURL)].
--git-homebrew-font-remote URL Git URL to the Homebrew cask-fonts repository [default: $(getDefaultGitHomebrewCaskFontsURL)]. --git-homebrew-font-remote URL Git URL to the Homebrew cask-fonts repository [default: $(getDefaultGitHomebrewCaskFontsURL)].
--git-homebrew-driver-remote URL Git URL to the Homebrew cask-drivers repository [default: $(getDefaultGitHomebrewCaskDriversURL)]. --git-homebrew-driver-remote URL Git URL to the Homebrew cask-drivers repository [default: $(getDefaultGitHomebrewCaskDriversURL)].
--homebrew-cache PATH Path to folder that shall be used as the
cache for Homebrew [default: $(getDefaultHomebrewCachePath)].
--homebrew-log PATH Path to folder that shall be used as the log
directory for Homebrew [default: $(getDefaultHomebrewLogPath)].
--homebrew-username NAME Username of the designated Homebrew user. --homebrew-username NAME Username of the designated Homebrew user.
[default: $(getDefaultHomebrewUsername)]. [default: $(getDefaultHomebrewUsername)].
-d FILE, --logfile FILE Print log message to logfile instead of stdout. -d FILE, --logfile FILE Print log message to logfile instead of stdout.