fake-os/setup.sh
2023-10-21 19:10:43 +11:00

132 lines
3.4 KiB
Bash
Executable file

#!/usr/bin/env sh
#--------[ Bootstrap Correct Shell ]--------#
if [ "$(command -v bash)" ] && [ -z "$BASH_VERSION" ]; then bash setup.sh $@; fi
if [ "$(command -v bash)" ] && [ -z "$BASH_VERSION" ]; then exit; fi
#--------[ Check Root ]--------#
if [ $(whoami) != "root" ]; then
echo ""
echo "FAKE//OS setup must be run as 'root'"
echo ""
exit 1
fi
#--------[ Check Install Method ]--------#
if [ ! -d "src/fake-os" ]; then
rm -rf /tmp/fake-os
git clone --depth 1 https://git.fake.onl/fake/fake-os.git /tmp/fake-os
cd /tmp/fake-os
fi
#--------[ Check Version ]--------#
if [ -f "/var/cache/fake-os/fake_version.txt" ]; then
export TMP_VERSION_LOCAL="$(cat /var/cache/fake-os/fake_version.txt)"
export TMP_VERSION_REMOTE="$(git rev-parse HEAD | head -c 10)"
if [ "$TMP_VERSION_LOCAL" == "$TMP_VERSION_REMOTE" ]; then
if [ "$(command -v _fake_layout_message)" ]; then
_fake_layout_message "Version" "$ENV_FAKE_VERSION" "upgrade" "Already up to date..."
else
echo ""
echo "FAKE//OS: Already up to date..."
echo ""
fi
exit 0
fi
unset TMP_VERSION_LOCAL
unset TMP_VERSION_REMOTE
else
echo ""
cat src/fake-os/assets/logos/logo_full.txt
echo ""
sleep 1
fi
#--------[ CLI Flag Arguments ]--------#
for ARGV in $@; do
case $ARGV in
-d|--debug) export FAKE_MODE_DEBUG="TRUE" ;;
-v|--quiet) export FAKE_MODE_QUIET="TRUE" ;;
esac
done
#--------[ Copy FAKE//OS Files ]--------#
echo "Copy FAKE//OS Files"
rm -rf /usr/share/fake-os
cp -rv src/fake-os /usr/share
mkdir -p /var/cache/fake-os
echo ""
#--------[ Log FAKE//OS Version Variable ]--------#
echo "$(git rev-parse HEAD | head -c 10)" > /var/cache/fake-os/fake_version.txt
#--------[ Install Dependencies ]--------#
echo "Install FAKE//OS Dependencies"
if [ "$(command -v paru)" ]; then
paru --noconfirm -S curl figlet git lolcat rsync perl sudo vim
elif [ "$(command -v pacman)" ]; then
pacman --noconfirm -S curl figlet git lolcat rsync perl sudo vim
elif [ "$(command -v apt)" ]; then
apt -y install curl figlet git lolcat rsync perl sudo vim
elif [ "$(command -v apk)" ]; then
apk add curl figlet git rsync perl sudo vim
fi
#--------[ Load FAKE//OS Init Script ]--------#
. src/fake-os/fake_init.sh --quiet
#--------[ Copy User RC Init Script ]--------#
mkdir -p /etc/skel
_fake_layout_heading "Copy InitRC Script"
cp -rv src/fake-os/assets/configs/initrc/initrc_$ENV_SHELL.sh /etc/skel/.bashrc
cp -rv src/fake-os/assets/configs/initrc/initrc_$ENV_SHELL.sh /etc/skel/.profile
cp -rv /etc/skel/. /root
for TMP_USER in $(ls /home); do
if [ ! "$(grep -e fake_init /home/$TMP_USER/.bashrc)" ]; then
cp -rv /etc/skel/. /home/$TMP_USER/
fi
done
unset TMP_USER
#--------[ Clean Up Junk Files ]--------#
_fake_layout_heading "Clean-Up Distro OS Files"
_fake_utils_config_replace src/fake-os/assets/configs/issue/issue.txt /etc/issue
_fake_utils_config_regex "%ENV_DISTRO" "$ENV_DISTRO" "/etc/issue"
_fake_utils_config_regex "%ENV_FAKE_VERSION" "$ENV_FAKE_VERSION" "/etc/issue"
_fake_utils_config_replace src/fake-os/assets/configs/issue/issue-net.txt /etc/issue.net
_fake_utils_config_regex "%ENV_DISTRO" "$ENV_DISTRO" "/etc/issue.net"
_fake_utils_config_regex "%ENV_FAKE_VERSION" "$ENV_FAKE_VERSION" "/etc/issue.net"
rm -rf /etc/motd
echo 'rm -rf /etc/motd'
#--------[ Setup Complete ]--------#
_fake_layout_heading "FAKE//OS Setup Complete!"