#!/bin/sh

set -e

if [ -z "$1" ] ; then
	echo "Usage $0 username"
	exit 1
fi

if [ "`whoami`" != "root" ] ; then
	echo "Run as root"
	exit 1
fi

USERNAME="$1"
# Robust way to get the user's home directory on both Linux and macOS
export BD="$(sudo -H -u "$USERNAME" sh -c 'cd && pwd')"

# change to $1 user
sudo -u "$USERNAME" sh -c "
set -e

echo sanity=2 basedir=${BD}

mkdir -p \"${BD}/libwebsockets/build\" && \
cd \"${BD}/libwebsockets/build\" && \
git fetch https://libwebsockets.org/repo/libwebsockets +_temp:m && \
git reset --hard m && \
make -j12
"

# return back to root
cd "${BD}/libwebsockets/build"
make -j12 install

# change back to $1 user
sudo -u "$USERNAME" sh -c "
set -e

cd \"${BD}/sai/build\" && \
git fetch https://warmcat.com/repo/sai +_temp:m && \
git reset --hard m && \
make -j12
"

# return back to root
cd "${BD}/sai/build"
make -j12 install

OS=$(uname -s)
if [ "$OS" = "Linux" ]; then
	systemctl restart sai-builder
elif [ "$OS" = "Darwin" ]; then
	launchctl unload /Library/LaunchDaemons/com.warmcat.sai-builder.plist
	launchctl load /Library/LaunchDaemons/com.warmcat.sai-builder.plist
else
	echo "Unknown OS: $OS. Cannot restart sai-builder."
fi

exit 0