#!/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!"