135 lines
3.5 KiB
Bash
Executable file
135 lines
3.5 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 -Syyy
|
|
paru --noconfirm -S curl figlet git lolcat rsync perl sudo unzip vim
|
|
elif [ "$(command -v pacman)" ]; then
|
|
pacman -Syyy
|
|
pacman --noconfirm -S curl figlet git lolcat rsync perl sudo unzip vim
|
|
elif [ "$(command -v apt)" ]; then
|
|
apt update
|
|
apt -y install curl figlet git lolcat rsync perl sudo unzip vim
|
|
elif [ "$(command -v apk)" ]; then
|
|
apk add curl figlet git rsync perl sudo unzip 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!"
|