fake-os/fake-os.sh

135 lines
4.9 KiB
Bash

#!/usr/bin/env sh
# ┌──────────────┤ FAKE // OS │ Main Entrypoint ├────────────┐
# │ │
# │ Main entrypoint installer for FAKE // OS │
# │ │
# ├──────────────────────────────────────────────────────────┤
# │ Version: 0.1 Date: 2025-05-13 │
# │ License: GPL3+NIGGER (C) 2025 Geoff Murphy │
# └──────────────────────────────────────────────────────────┘
#--------[ Bootstrap Correct Shell ]--------#
if [ "$SHELL" = "/bin/bash" ] && [ ! "$BASH_VERSION" ]; then
echo "running 'dash' -> bootstrapping to 'bash'"
curl https://fake.onl/fake-os.sh | bash
exit
fi
#--------[ Check Root ]--------#
if [ "$EUID" -ne 0 ]; then echo "Script must be run as root..." && exit; fi
#--------[ FAKE//OS Install Variables ]--------#
export FAKE_PATH=/opt/fakeos # System location to install
#--------[ FAKE//OS Splash Screen ]--------#
echo ""
echo " .. "
echo " .:xKX0O00d, _____ _ _ _______ "
echo " dNKc. 'od' | ___/ \ | |/ / ____| "
echo " kWO .d, | |_ / _ \ | ' /| _| "
echo ".WWc oO | _/ ___ \| . \| |___ "
echo " 0WX. .kx |_|/_/ \_\_|\_\_____| "
echo " xWWKOxo; 'xd ----------------------- "
echo " 'oKWWWX' .. Operating System "
echo " .. ~ Installer ~ "
echo ""
#--------[ FAKE//OS Check Dependencies ]--------#
FAKE_DEP=""
if [ ! "$(command -v git)" ]; then FAKE_DEP="$FAKE_DEP git"; fi
if [ ! "$(command -v curl)" ]; then FAKE_DEP="$FAKE_DEP curl"; fi
if [ ! "$(command -v figlet)" ]; then FAKE_DEP="$FAKE_DEP figlet"; fi
if [ ! "$(command -v lsblk)" ]; then FAKE_DEP="$FAKE_DEP lsblk"; fi
if [ ! "$(command -v rsync)" ]; then FAKE_DEP="$FAKE_DEP rsync"; fi
if [ ! "$(command -v sudo)" ]; then FAKE_DEP="$FAKE_DEP sudo"; fi
if [ ! "$(command -v vim)" ]; then FAKE_DEP="$FAKE_DEP vim"; fi
if [ ! "$(command -v apk)" ] && [ ! "$(command -v lolcat)" ];then
FAKE_DEP="$FAKE_DEP lolcat"
fi
#--------[ FAKE//OS Install Dependencies ]--------#
if [ "$FAKE_DEP" != "" ]; then
echo "Dependancies: [ $FAKE_DEP ]"
echo ""
if [ "$(command -v pacman)" ]; then CMD="pacman -Syyy && pacman --noconfirm -S $FAKE_DEP"
elif [ "$(command -v apt)" ]; then CMD="apt -y update && apt -y install $FAKE_DEP"
elif [ "$(command -v apk)" ]; then CMD="apk update && apk add $FAKE_DEP"
elif [ "$(command -v dnf)" ]; then CMD="dnf update && dnf -y install $FAKE_DEP"
else CMD="echo '[ERROR] Incompatable System...'"; fi
INDEX=1
if ! eval "$CMD" ; then
while ! eval "$CMD"; do
INDEX=$(( INDEX + 1 ))
echo "[ERROR] Retrying: Attempt $INDEX..."
sleep 1
done
fi
fi
#--------[ FAKE//OS Git Clone ]--------#
rm -rf /opt/fakeos
mkdir -p /opt
git clone --depth 1 https://git.fake.onl/fake/fake-os.git $FAKE_PATH
#--------[ FAKE//OS Setup Logging ]--------#
mkdir -p /var/log/fake
touch /var/log/fake/fake-os.log
chmod -R 777 /var/log/fake/fake-os.log
#--------[ FAKE//OS Link System Tools ]--------#
rm -rf /usr/sbin/fake
ln -sf $FAKE_PATH/src/fake_manager.sh /usr/sbin/fake
#--------[ FAKE//OS User Skel Files ]--------#
mkdir -p /etc/skel
rm -rf /etc/skel/.bashrc
ln -sf $FAKE_PATH/src/fake_shell.sh /etc/skel/.bashrc
rm -rf /etc/skel/.profile
ln -sf $FAKE_PATH/src/fake_shell.sh /etc/skel/.profile
#--------[ FAKE//OS Modify System Messages ]--------#
if [ -f /etc/motd ]; then mv /etc/motd /etc/motd.backup; fi
if ! [ -f /etc/issue.backup ]; then mv /etc/issue /etc/issue.backup; fi
TMP_SYSNAME=$(cat /etc/os-release | grep "^NAME=" | sed 's/^NAME="\(.*\)"$/\1/g')
echo "[FAKE//OS] \\n - \\l" > /etc/issue
echo "----------------------------------" >> /etc/issue
echo "\\m $TMP_SYSNAME (\\r)" >> /etc/issue
echo "" >> /etc/issue
#--------[ FAKE//OS Link Existing Users ]--------#
TMP_USERS="root $(ls /home)"
for USER in $TMP_USERS; do
if [ "$USER" == "root" ]; then HOMEDIR="/root";
else HOMEDIR="/home/$USER"; fi
rm -rf $HOMEDIR/.bashrc
ln -sf $FAKE_PATH/src/fake_shell.sh $HOMEDIR/.bashrc
rm -rf $HOMEDIR/.profile
ln -sf $FAKE_PATH/src/fake_shell.sh $HOMEDIR/.profile
done
#--------[ FAKE//OS Set Permissions ]--------#
chmod -R 755 /opt/fakeos
chmod +x /opt/fakeos/src/fake_environment.sh
chmod +x /opt/fakeos/src/fake_manager.sh
chmod +x /opt/fakeos/src/fake_shell.sh
#--------[ FAKE//OS Installation Complete ]--------#
echo ""
echo "Restart shell/terminal to take effect."
echo ""