#!/bin/zsh

# Author: Sean Holden
# Date: 06.2022
# Copyright FileWave AG
# Provided by Professional Services

current_user=$(stat -f%Su /dev/console)
# Known directories at time of writing
declare -a local_dir=("/usr/local/homebrew" \
		"/usr/local/share/man/man1"
		"/usr/local/share/man"
		"/usr/local/Cellar" \
		"/usr/local/Frameworks"
		"/usr/local/bin" \
		"/usr/local/etc" \
		"/usr/local/include" \
		"/usr/local/lib" \
		"/usr/local/opt" \
		"/usr/local/sbin" \
		"/usr/local/share" \
		"/usr/local/share/zsh" \
		"/usr/local/share/zsh/site-functions" \
		"/usr/local/var" \
		"/usr/local/Library" \		 
		"/Library/Caches/Homebrew")

# If user is below uid 500 should we abort or pick a user.  Picking an admin user for now
if [ $(id -u $current_user) -lt 501 ]
then
	echo "No 500 user.  Picking a local admin user"
	current_user=$(/usr/bin/dscl . -read /Groups/admin GroupMembership | awk '{print $NF}')
fi

echo "Configuring user ${current_user}..."

# Add them as a developer
is_developer=$(groups $current_user | awk '/ _developer / ')
if [ ! $is_developer ]
then
	echo "Adding user $current_user to _developer group"
	/usr/sbin/dseditgroup -o edit -a "$current_user" -t user _developer
fi

# Create directories and alter permissions.
for a_dir in ${local_dir[@]}
do
        if [ ! -e "$a_dir" ]
        then
                mkdir "$a_dir"
        fi

        chown $current_user:_developer "$a_dir"
        chmod g+rwx "$a_dir"
done

cd /tmp/

# Install brew
if [ ! -e /usr/local/bin/brew ]
then
	echo "Configuring paths..."
	su -l $current_user -c  "echo 'export PATH=\"$HOME/.cask/bin:/usr/local/sbin:/usr/local/bin:$PATH\"' >> ~/.profile"
	su -l $current_user -c  "echo 'export PATH=\"$HOME/.cask/bin:/usr/local/sbin:/usr/local/bin:$PATH\"' >> ~/.zshrc"

	echo "Installing brew..."
	su -l "$current_user" -c "curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C /usr/local/homebrew"
	echo "brew installed: $?"
	ln -s /usr/local/homebrew/bin/brew /usr/local/bin/brew

	echo "Adding md5 checker"
	su -l "$current_user" -c "/usr/local/bin/brew install md5sha1sum"
	echo "Adding cask"
	su -l "$current_user" -c "brew install cask"
fi

# Run update check
echo "Checking brew updates..."
su -l "$current_user" -c "/usr/local/bin/brew update"
echo "Installed: $?"

exit 0