mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
55 lines
1.3 KiB
Bash
Executable File
55 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# $1 Full path to the installer - unused
|
|
# $2 Location of the temporary brew install we're moving into place
|
|
# $3 Target install location - unused
|
|
# $4 System root directory - unused
|
|
set -e
|
|
|
|
# verify the files exist
|
|
tmp_brew="$2"
|
|
if [[ ! -d "${tmp_brew:?}" ]]
|
|
then
|
|
echo "no directory at ${tmp_brew}, exiting"
|
|
exit 1
|
|
fi
|
|
|
|
# pick the correct target
|
|
if [[ $(uname -m) == "x86_64" ]]
|
|
then
|
|
target="/usr/local"
|
|
else
|
|
target="/opt/Homebrew"
|
|
fi
|
|
|
|
loggedInUser=$(echo "show State:/Users/ConsoleUser" | scutil | awk '/Name :/ { print $3 }')
|
|
if [[ -f "${target}/bin/brew" ]]
|
|
then
|
|
if [[ $(sudo -u"${loggedInUser}" git -C "${target}" branch --show-current) != "master" ]]
|
|
then
|
|
echo "working on brew modifications, exiting"
|
|
rm -rf "${tmp_brew:?}/*"
|
|
exit 0
|
|
fi
|
|
if [[ $("${tmp_brew}/bin/brew" --version | head -n1) != $("${target}/bin/brew" --version | head -n1) ]]
|
|
then
|
|
echo "already an outdated install at ${target}, updating"
|
|
sudo -u"${loggedInUser}" "${target}/bin/brew" update --auto-update
|
|
else
|
|
echo "already an up-to-date install at ${target}, exiting"
|
|
fi
|
|
|
|
rm -rf "${tmp_brew:?}/*"
|
|
exit 0
|
|
fi
|
|
|
|
group=$(id -gn "${loggedInUser}")
|
|
|
|
install -d -o "${loggedInUser}" -g "${group}" "${target}"
|
|
cp -RX "${tmp_brew}/" "${target}"
|
|
|
|
# set permissions
|
|
chown -R "${loggedInUser}:${group}" "${target}/*"
|
|
|
|
# cleanup
|
|
rm -rf "${tmp_brew:?}/*"
|