135 lines
4.9 KiB
Bash
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 ""
|