56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			56 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 "root" -g "wheel" -m "0755" "${target}"
 | |
| 
 | |
| cp -RX "${tmp_brew}/" "${target}"
 | |
| 
 | |
| # set permissions
 | |
| chown -R "${loggedInUser}:${group}" "${target}/*"
 | |
| 
 | |
| # cleanup
 | |
| rm -rf "${tmp_brew:?}/*"
 | 
