Initial commit

This commit is contained in:
Geoff Murphy 2023-10-21 19:10:43 +11:00
commit b46cf2175d
61 changed files with 1622 additions and 0 deletions

66
README.md Executable file
View file

@ -0,0 +1,66 @@
# FAKE // OS
FAKE//OS system utilities and scripts.
![demo](src/fake-os/assets/other/demo.png)
# Philosophy
1. **Standardised:** Functions should work consistently across multiple Operating System Distrobutions.
2. **Repeatable:** Functions should be able to re-run (for ugrade purposes) without destroying already modified system configurations.
3. **Modularity:** Functions should be simple and modular for easy additions and modifications.
3. **Error Handeling:** Functions should have good error handeling for use in automated scripts.
# Supported Operating Systems
FAKE//OS aims to be system agnostic, and provide a consistent set of functions (especially for scripting) across a variety of Linux distrobutions, which otherwise don't play well togehter. Currently supported distrobutions include:
- Arch Linux _[bash + systemd + pacman/paru]_
- Artix Linux _[bash + openrc + pacman/paru]_
- Alpine Linux _[ash + openrc + apk]_
- Debian Linux _[bash/dash + systemd + apt]_
# Basic Ussage
``` bash
FAKE//OS Package and System Manager
-----------------------------------
usage: fake <command> <arguments>
Package management commands:
install Install new software packages
update Update installed software packages
remove Remove/Uninstall software packages
search Search repository for software packages
Init/System management commands
start Start system daemons
stop Stop system daemons
restart Restart system daemons
enable Add system daemons to default startup PID
disable Remove system daemons from default startup PID
flush Clear syste caches
FAKE//OS commands:
upgrade Upgrade FAKE//OS to latest git version
help Display this help screen
```
# Install FAKE // OS
### Automatic Install
Copy and paste the folloing into you're commandline terminal:
``` bash
curl https://git.fake.onl/fake/fake-os/raw/branch/master/setup.sh | sh
```
### Manual Install
For manual installation and access to the source-code run the following commands:
``` bash
git clone https://git.fake.onl/fake/fake-os.git
cd fake-os
./setup.sh
```
### Upgrade Install
Once installed FAKE//OS can be upgraded (install the latest version from git.fake.onl) by running the following command:
``` bash
fake upgrade
```

132
setup.sh Executable file
View file

@ -0,0 +1,132 @@
#!/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!"

View file

@ -0,0 +1,5 @@
#!/usr/bin/env ash
#--------[ FAKE//OS Init Bootstrap ]--------#
. /usr/share/fake-os/fake_init.sh $@

View file

@ -0,0 +1,5 @@
#!/usr/bin/env bash
#--------[ FAKE//OS Init Bootstrap ]--------#
. /usr/share/fake-os/fake_init.sh $@

View file

@ -0,0 +1,4 @@
%ENV_DISTRO: \r (\l) [remote]
FAKE//OS Version: %ENV_FAKE_VERSION

View file

@ -0,0 +1,4 @@
%ENV_DISTRO: \r (\l)
FAKE//OS Version: %ENV_FAKE_VERSION

View file

@ -0,0 +1,9 @@
.^!?JJ?7^.
^YB#GPYYYPGG?:
.5&&J^ .~Y5!
Y@&~ !P~
:#@B .GP.
P@&? !GY
:P@@B5J?!: .7P5.
7G&@@@@@7 :!?~
^7JYJ7. .

View file

@ -0,0 +1,9 @@
..
.:xKX0O00d, _____ _ _ _______ ____ ___ ____
dNKc. 'od' | ___/ \ | |/ / ____| / / / / _ \/ ___|
kWO .d, | |_ / _ \ | ' /| _| / / / | | | \___ \
.WWc oO | _/ ___ \| . \| |___ / / / | |_| |___) |
0WX. .kx |_|/_/ \_\_|\_\_____| /_/_/ \___/|____/
xWWKOxo; 'xd ---------------------------------------------
'oKWWWX' .. Fake Operating System
..

View file

@ -0,0 +1,7 @@
_____ _ _ _______ ____ ___ ____
| ___/ \ | |/ / ____| / / / / _ \/ ___|
| |_ / _ \ | ' /| _| / / / | | | \___ \
| _/ ___ \| . \| |___ / / / | |_| |___) |
|_|/_/ \_\_|\_\_____| /_/_/ \___/|____/
---------------------------------------------
Fake Operating System setup

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

99
src/fake-os/fake_init.sh Executable file
View file

@ -0,0 +1,99 @@
#!/usr/bin/env sh
#--------[ Master Paths ]--------#
if ! [ "$(echo $PATH | grep sbin)" ]; then
export PATH="$PATH:/sbin:/usr/sbin:/usr/local/sbin"
fi
if ! [ "$(echo $PATH | grep games)" ]; then
export PATH="$PATH:/sbin:/usr/sbin:/usr/local/sbin:/usr/games"
fi
#--------[ System Variables ]--------#
export VISUAL=emacs
export EDITOR=vim
#--------[ CLI Flag Arguments ]--------#
for ARGV in $@; do
case $ARGV in
-d|--degub) export FAKE_MODE_DEBUG="TRUE" ;;
-q|--quiet) export FAKE_MODE_QUIET="TRUE" ;;
esac
done
#--------[ Terminal Colours ]--------#
FCOL0="\e[0m"
FCOL1="\e[37m\033[38;5;166m"
FCOL2="\e[37m\033[38;5;204m"
FCOL3="\e[37m\033[38;5;170m"
FCOLGRAD="lolcat -p 4 -S 6 -F 0.1"
FCOLBOLD="\e[1m"
FCOLITAL="\e[2;3m"
#--------[ Load Core Modules ]--------#
for MODULE in $(find /usr/share/fake-os/modules -name "*.sh"); do
. $MODULE
done
unset MODULE
#--------[ Load User Modules ]--------#
if [ ! -d ~/.local/share/fake-os/modules ]; then
mkdir -p ~/.local/share/fake-os/modules;
fi
for MODULE in $(find ~/.local/share/fake-os/modules -name "*.sh"); do
. $MODULE
done
unset MODULE
#--------[ CLI Prompt ]--------#
if [ $(whoami) != "root" ]; then
PS1="\[${FCOL0}\]\[[${FCOL3}\]\u\[${FCOL0}\]@\[${FCOL3}\]\h\[${FCOL0}\]] \W \$ "
else
PS1="\[${FCOL0}\]\[[${FCOL1}\]\u\[${FCOL0}\]@\[${FCOL1}\]\h\[${FCOL0}\]] \W \$ "
fi
#--------[ Login Display ]--------#
echo ""
if [ ! "$FAKE_MODE_QUIET" ]; then
#--------[ Local Login ]--------#
if [ "$ENV_LOGIN" == "local" ]; then
if [ "$(command -v lolcat)" ]; then
cat /usr/share/fake-os/assets/logos/logo_full.txt | $FCOLGRAD
else
cat /usr/share/fake-os/assets/logos/logo_full.txt
fi
#--------[ SSH Login ]--------#
else
if [ "$(command -v figlet)" ]; then
figlet -w 1000 $(cat /etc/hostname)
else
echo "FAKE//OS Login: $(cat /etc/hostname)"
fi
fi
#--------[ Login Info ]--------#
echo ""
echo -e "${FCOL1}user:${FCOL0} $(whoami) ${FCOL2}login:${FCOL0} $ENV_LOGIN ${FCOL3}system:${FCOL0} $ENV_ARCH $ENV_DISTRO $ENV_VTAG"
echo ""
fi

View file

@ -0,0 +1,13 @@
#!/usr/bin/env sh
#---------[ Fake Debug Pause Function ]--------#
_fake_debug () {
if [ "$FAKE_MODE_DEBUG" ]; then
echo ""
read -n 1 -p "Debug Break: Press key to continue..." VOID && echo ""
elif [ "$FAKE_MODE_SLOW" ]; then
sleep 3
fi
}

View file

@ -0,0 +1,12 @@
#!/usr/bin/env sh
#--------[ Error Basic Message Function ]--------#
_fake_debug_error_pause () {
if [ "$FAKE_MODE_DEBUG" ]; then
read -n 1 -p "Error: Press any key to continue..." VOID && echo ""
elif [ "$FAKE_MODE_SLOW" ]; then
sleep 3
fi
}

View file

@ -0,0 +1,10 @@
#!/usr/bin/env sh
#--------[ Detect Bootloader Type ]--------#
if [ -d "/sys/firmware/efi" ]; then
export ENV_BOOTLOADER="UEFI"
else
export ENV_BOOTLOADER="BIOS"
fi

View file

@ -0,0 +1,6 @@
#!/usr/bin/env sh
#--------[ Detect CPU Architecture ]--------#
export ENV_ARCH=$(uname -m)

View file

@ -0,0 +1,11 @@
#!/usr/bin/env sh
#--------[ Detect CPU Make ]--------#
if [ "$(command -v lscpu)" ]; then
if [ "$(lscpu | grep Intel)" ]; then export ENV_CPU="intel";
elif [ "$(lscpu | grep AMD)" ]; then export ENV_CPU="amd";
elif [ "$(lscpu | grep ARM)" ]; then export ENV_CPU="arm";
else export ENV_CPU="unkown"; fi
else export ENV_CPU="unkown"; fi

View file

@ -0,0 +1,12 @@
#!/usr/bin/env sh
#--------[ Detect GPU Make ]--------#
if [ -d "/proc/bus/pci" ] && [ "$(command -v lspci)" ]; then
if [ "$(lspci | grep VGA | grep Intel)" ]; then export ENV_GPU="intel";
elif [ "$(lspci | grep VGA | grep GeForce)" ]; then export ENV_GPU="nvidia";
elif [ "$(lspci | grep VGA | grep AMD)" ]; then export ENV_GPU="amd";
else export ENV_GPU="unkown"
fi
else export ENV_GPU="unknown"; fi

View file

@ -0,0 +1,32 @@
#!/usr/bin/env sh
#--------[ Detect Motherboard Chipset ]--------#
if [ -d "/sys/devices/virtual/dmi/id" ]; then
export ENV_MAKE=$(cat /sys/devices/virtual/dmi/id/sys_vendor)
export ENV_MODEL=$(cat /sys/devices/virtual/dmi/id/product_family)
elif [ -f "/proc/device-tree/model" ]; then
if [ "$(tr -d '\0' < /proc/device-tree/model | grep -a PineTab)" ]; then
export ENV_MAKE="Pine64"
export ENV_MODEL="PineTab"
elif [ "$(tr -d '\0' < /proc/device-tree/model | grep -a PinePhone)" ]; then
export ENV_MAKE="Pine64"
export ENV_MODEL="PinePhonePro"
elif [ "$(tr -d '\0' < /proc/device-tree/model | grep -a 'Zero W')" ]; then
export ENV_MAKE="RaspberryPi"
export ENV_MODEL="RPi-Zero-W"
elif [ "$(tr -d '\0' < /proc/device-tree/model | grep -a 'Pi 2')" ]; then
export ENV_MAKE="RaspberryPi"
export ENV_MODEL="RPi-2"
elif [ "$(tr -d '\0' < /proc/device-tree/model | grep -a 'Pi 4')" ]; then
export ENV_MAKE="RaspberryPi"
export ENV_MODEL="RPi-4"
else
export ENV_MAKE="unknown"
export ENV_MODEL="unknown"
fi
else
export ENV_MAKE="unknown"
export ENV_MODEL="unknown"
fi

View file

@ -0,0 +1,6 @@
#!/usr/bin/env sh
#--------[ Memory Amount ]--------#
export ENV_MEMORY=$(free -h | grep 'Mem\|Speicher' | awk '{print $2}')

View file

@ -0,0 +1,9 @@
#!/usr/bin/env sh
#--------[ Detect Network Type ]--------#
export ENV_NETWORK="none"
if [ "$(ip addr | grep inet | grep wlan)" ]; then export ENV_NETWORK="wlan"; fi
if [ "$(ip addr | grep inet | grep eth)" ]; then export ENV_NETWORK="eth"; fi
if [ "$(ip addr | grep inet | grep enp)" ]; then export ENV_NETWORK="eth"; fi

View file

@ -0,0 +1,24 @@
#!/usr/bin/env sh
#--------[ Detect Virtual/Container Environment ]--------#
if [ ! "$(cat /proc/1/environ 2>&1 | tr -d '\0' | grep denied)" ]; then
if [ "$(cat /proc/1/environ | tr -d '\0' | grep lxc)" ]; then
export ENV_VIRTUAL="LXC"
export ENV_VTAG="[LXC]"
elif [ "$ENV_MAKE" == "QEMU" ]; then
export ENV_VIRTUAL="VM"
export ENV_VTAG='[QEMU]'
else
export ENV_VIRTUAL="REAL"
fi
echo $ENV_VIRTUAL > /var/cache/fake-os/env_virtual.txt
else
if [ -f /var/cache/fake-os/env_virtual.txt ]; then
export ENV_VIRTUAL="$(cat /var/cache/fake-os/env_virtual.txt)"
if [ "$ENV_VIRTUAL" != "REAL" ]; then ENV_VTAG="[$ENV_VIRTUAL]"; fi
else
export ENV_VIRTUAL="UNKNOWN"
fi
fi

View file

@ -0,0 +1,16 @@
#!/usr/bin/env sh
#--------[ Detect Operating System Distro ]--------#
export ENV_DISTRO=$(cat /etc/os-release | grep "^NAME=" | sed 's/^NAME="\(.*\)"$/\1/g')
if [ "$(command -v proxmox-boot-tool)" ]; then export ENV_DISTRO="Proxmox (Debian)"; fi
if [ "$(command -v raspi-config)" ]; then export ENV_DISTRO="RaspberryOS (Debian)"; fi
# "Arch Linux"
# "Artix Linux"
# "Debian GNU/Linux"
# "Fedora Linux"
# "Proxmox (Debian)"
# "RaspberryOS (Debian)"

View file

@ -0,0 +1,6 @@
#!/usr/bin/env sh
#--------[ Detect Fake Version ]--------#
export ENV_FAKE_VERSION="$(cat /var/cache/fake-os/fake_version.txt)"

View file

@ -0,0 +1,6 @@
#!/usr/bin/env sh
#--------[ Detect System Hostname ]--------#
export ENV_HOSTNAME=$(uname -n)

View file

@ -0,0 +1,9 @@
#!/usr/bin/env sh
#--------[ Detect Init System ]--------#
if [ "$(command -v systemctl)" ]; then export ENV_INIT="systemd";
elif [ "$(command -v rc-service)" ]; then export ENV_INIT="openrc";
else export ENV_INIT="unknown";
fi

View file

@ -0,0 +1,10 @@
#!/usr/bin/env sh
#--------[ Dettect Session Login Type ]--------#
if [ "$SSH_TTY" ]; then
ENV_LOGIN="ssh";
else
ENV_LOGIN="local";
fi

View file

@ -0,0 +1,12 @@
#!/usr/bin/env sh
#--------[ Package Manager ]--------#
if [ "$(command -v paru)" ]; then export ENV_MANAGER="paru";
elif [ "$(command -v pacman)" ]; then export ENV_MANAGER="pacman";
elif [ "$(command -v apt)" ]; then export ENV_MANAGER="apt";
elif [ "$(command -v apk)" ]; then export ENV_MANAGER="apk";
elif [ "$(command -v dnf)" ]; then export ENV_MANAGER="dnf";
elif [ "$(command -v yum)" ]; then export ENV_MANAGER="yum";
else export ENV_MANAGER="unknown"; fi

View file

@ -0,0 +1,6 @@
#!/usr/bin/env sh
#--------[ Detect Shell ]--------#
export ENV_SHELL="$(echo $SHELL | sed 's/^\/.*\///g')"

View file

@ -0,0 +1,6 @@
#!/usr/bin/env sh
#--------[ Detect System Users ]--------#
export ENV_USERS=$( echo root $(ls /home/))

View file

@ -0,0 +1,14 @@
#!/usr/bin/env sh
#--------[ Fake Layout Heading ]--------#
_fake_layout_heading () {
PADDING=$(perl -E "say \"─\" x $(echo $1 | wc -c)")
echo ""
echo "┌──$PADDING─┐"
echo -e "${FCOLBOLD}$1${FCOL0}"
echo "└──$PADDING─┘"
echo ""
if [ "$FAKE_MODE_SLOW" ]; then sleep 2; fi
}

View file

@ -0,0 +1,51 @@
#!/usr/bin/env sh
#--------[ Fake Layout Message ]--------#
_fake_layout_message () {
echo ""
#--------[ 6 Arg Message ]--------#
if [ "$8" ]; then
echo -e "${FCOLBOLD}FAKE//OS${FCOL0} $1: $2"
echo -e "[$3]:${FCOLITAL} $4 ${FCOL0}";
echo -e "[$5]:${FCOLITAL} $6 ${FCOL0}";
echo -e "[$7]:${FCOLITAL} $8 ${FCOL0}";
echo ""
#--------[ 6 Arg Message ]--------#
elif [ "$6" ]; then
echo -e "${FCOLBOLD}FAKE//OS${FCOL0} $1: $2"
echo -e "[$3]:${FCOLITAL} $4 ${FCOL0}";
echo -e "[$5]:${FCOLITAL} $6 ${FCOL0}";
echo ""
#--------[ 4 Arg Message ]--------#
elif [ "$4" ]; then
echo -e "${FCOLBOLD}FAKE//OS${FCOL0} $1: $2"
echo -e "[$3]:${FCOLITAL} $4 ${FCOL0}";
echo ""
#--------[ 2 Argument Message ]--------#
elif [ "$2" ]; then
echo -e "${FCOLBOLD}FAKE//OS${FCOL0} $1:${FCOLITAL} $2 ${FCOL0}"
#--------[ 1 Argument Message ]--------#
else
echo -e "${FCOLBOLD}FAKE//OS${FCOL0}: $1"
fi
#--------[ Debug Mode ]--------#
if [ "$1" == "Error" ] && [ "$FAKE_MODE_SLOW" ]; then sleep 3; fi
}

View file

@ -0,0 +1,10 @@
#!/usr/bin/env sh
#--------[ Fake Layout Sub-Heading ]--------#
_fake_layout_subheading () {
echo ""
echo -e "--------[${FCOLBOLD} $1 ${FCOL0}]--------"
if [ "$FAKE_MODE_DEBUG" ]; then sleep 1; fi
}

View file

@ -0,0 +1,8 @@
#!/usr/bin/env sh
#--------[ Fake Layout Message ]--------#
_fake_layout_submessage () {
echo -e "[$1]:${FCOLITAL} $2 ${FCOL0}";
}

View file

@ -0,0 +1,53 @@
#!/usr/bin/env sh
#--------[ Determin Base Distro Package Manager ]--------#
if [ $(command -v apt) ]; then FAKE_MANAGER=apt; fi
if [ $(command -v apk) ]; then FAKE_MANAGER=apk; fi
if [ $(command -v dnf) ]; then FAKE_MANAGER=dnf; fi
if [ $(command -v pacman) ]; then FAKE_MANAGER=pacman; fi
if [ $(command -v paru) ] && [ "$(whoami)" != "root" ]; then FAKE_MANAGER=paru; fi
#--------[ FAKE//OS Package/System Manager ]--------#
fake () {
#--------[ Package Management ]--------#
if [ "$1" == "update" ]; then _fake_manager_package_update $@;
elif [ "$1" == "install" ]; then _fake_manager_package_install $@;
elif [ "$1" == "remove" ]; then _fake_manager_package_remove $@;
elif [ "$1" == "search" ]; then _fake_manager_package_search $@;
#--------[ Init/System Management ]--------#
elif [ "$1" == "status" ]; then _fake_manager_system_status $@;
elif [ "$1" == "start" ]; then _fake_manager_system_start $@;
elif [ "$1" == "stop" ]; then _fake_manager_system_stop $@;
elif [ "$1" == "restart" ]; then _fake_manager_system_restart $@;
elif [ "$1" == "enable" ]; then _fake_manager_system_enable $@;
elif [ "$1" == "disable" ]; then _fake_manager_system_disable $@;
elif [ "$1" == "flush" ]; then _fake_utils_linux_flushcache $@;
#--------[ FAKE//OS Commandes ]--------#
elif [ "$1" == "upgrade" ]; then _fake_manager_upgrade $@;
elif [ "$1" == "help" ]; then _fake_manager_help $@;
#--------[ Error Catch-All ]--------#
else
_fake_layout_message "$1" "Unrecognised command..."
fi
#--------[ Debug Pause ]--------#
if [ "$FAKE_MODE_SLOW" ]; then sleep 3; fi
}

View file

@ -0,0 +1,30 @@
#!/usr/bin/env sh
#--------[ FAKE//OS Manager: Help ]--------#
_fake_manager_help () {
echo ""
echo "FAKE//OS [version] $ENV_FAKE_VERSION"
echo "-----------------------------------"
echo "usage: fake <command> <arguments>"
echo ""
echo "Package management commands:"
echo " install Install new software packages"
echo " update Update installed software packages"
echo " remove Remove/Uninstall software packages"
echo " search Search repository for software packages"
echo ""
echo "Init/System management commands"
echo " start Start system daemons"
echo " stop Stop system daemons"
echo " restart Restart system daemons"
echo " enable Add system daemons to default startup PID"
echo " disable Remove system daemons from default startup PID"
echo " flush Clear system caches"
echo ""
echo "FAKE//OS commands:"
echo " upgrade Upgrade FAKE//OS to latest git version"
echo " help Display this help screen"
echo ""
}

View file

@ -0,0 +1,8 @@
#!/usr/bin/env sh
#--------[ FAKE//OS Manager: Upgrade FAKE//OS ]--------#
_fake_manager_upgrade () {
curl https://git.fake.onl/fake/fake-os/raw/branch/master/setup.sh | sudo $ENV_SHELL
}

View file

@ -0,0 +1,44 @@
#!/usr/bin/env sh
#--------[ FAKE//OS Manager: Automation Function ]--------#
_fake_manager_package_automation () {
#--------[ Parse Input Command ]--------#
FAKE_CMD="$@"
#--------[ 4x Automatic Attmepts ]--------#
FAKE_RETRY=0
until $FAKE_CMD; do
((FAKE_RETRY=FAKE_RETRY+1))
if [ $FAKE_RETRY -eq 4 ]; then break; fi
_fake_layout_message "Error" "Auto-Retry -> Attempt $FAKE_RETRY..." "retry" "$FAKE_CMD"
done
#--------[ 1x Manual Attempt ]--------#
if [ $FAKE_RETRY -eq 4 ]; then
FAKE_CMD=$(echo $FAKE_CMD | sed -e 's/--noconfirm//g')
FAKE_CMD=$(echo $FAKE_CMD | sed -e 's/-y//g')
_fake_layout_message "Error" "Auto-Retry -> Attempt 4 [FINAL]..." "retry" "$FAKE_CMD"
$FAKE_CMD
#--------[ Autmation Failure ]--------#
if [ $? -ne 0 ]; then
((FAKE_RETRY=FAKE_RETRY+1))
_fake_layout_message "Error" "$FAKE_CMD" "message" "Failed after 4x Auto and 1x Manual attempts..."
__fake_debug_error_pause
fi
fi
}

View file

@ -0,0 +1,120 @@
#!/usr/bin/env sh
#--------[ FAKE//OS Manager: Install Software ]--------#
_fake_manager_package_install () {
#--------[ Basic Error Handeling ]--------#
if [ ! "$2" ]; then
_fake_layout_message "Error" "Must specify packages..."
#--------[ Parse Package Arguments ]--------#
else
FAKE_PACKAGES=$(echo "$@" | sed -e 's/^install\ //g')
#--------[ Get Pre-Installed System Pacakges ]--------#
SYS_PACKAGES=""
case $FAKE_MANAGER in
apt) SYS_PACKAGES="$(apt list --installed 2>/dev/null)" ;;
apk) SYS_PACKAGES="$(apk list --installed)" ;;
dnf) SYS_PACKAGES="$(dnf list --installed)" ;;
pacman) SYS_PACKAGES="$(pacman -Qq)" ;;
paru) SYS_PACKAGES="$(paru -Qq)" ;;
esac
#--------[ Sort Packages Already Pre-Installed ]--------#
FAKE_PACKAGES_NEW=""
FAKE_PACKAGES_OLD=""
for TMP_PACKAGE in $FAKE_PACKAGES; do
if [ "$(echo $SYS_PACKAGES | grep $TMP_PACKAGE)" ]; then
FAKE_PACKAGES_OLD="$FAKE_PACKAGES_OLD $TMP_PACKAGE"
else
FAKE_PACKAGES_NEW="$FAKE_PACKAGES_NEW $TMP_PACKAGE"
fi
done
#--------[ Determin Available Packages ]--------#
FAKE_PACKAGES_UNAVAILABLE=""
FAKE_PACKAGES_INSTALL=""
for TMP_PACKAGE in $FAKE_PACKAGES_NEW; do
TMP_FOUND=FALSE
case $FAKE_MANAGER in
apk)
if [ "$(apk search --exact $TMP_PACKAGE)" ];then TMP_FOUND=TRUE; fi
;;
apt)
if [ "$(apt-cache search --names-only $TMP_PACKAGE | grep ^$TMP_PACKAGE\ )" ];then TMP_FOUND=TRUE; fi
;;
pacman)
if [ "$(pacman -Ssq $TMP_PACKAGE | grep ^$TMP_PACKAGE$)" ];then TMP_FOUND=TRUE; fi
if [ "$(pacman -Sg $TMP_PACKAGE | awk '{print $1}' | grep ^$TMP_PACKAGE$)" ];then TMP_FOUND=TRUE; fi
;;
paru)
if [ "$(paru -Ssq $TMP_PACKAGE | grep ^$TMP_PACKAGE$)" ];then TMP_FOUND=TRUE; fi
if [ "$(paru -Sg $TMP_PACKAGE | awk '{print $1}' | grep ^$TMP_PACKAGE$)" ];then TMP_FOUND=TRUE; fi
;;
esac
if [ "$TMP_FOUND" == "TRUE" ]; then
FAKE_PACKAGES_INSTALL="$FAKE_PACKAGES_INSTALL $TMP_PACKAGE"
else
FAKE_PACKAGES_UNAVAILABLE="$FAKE_PACKAGES_UNAVAILABLE $TMP_PACKAGE"
fi
done
#--------[ Build Install Command ]--------#
FAKE_CMD=""
case $FAKE_MANAGER in
apt) FAKE_CMD="sudo apt -y install $FAKE_PACKAGES_INSTALL" ;;
apk) FAKE_CMD="sudo apk add $FAKE_PACKAGES_INSTALL" ;;
dnf) FAKE_CMD="sudo dnf -y install $FAKE_PACKAGES_INSTALL" ;;
pacman) FAKE_CMD="sudo pacman --noconfirm -S $FAKE_PACKAGES_INSTALL" ;;
paru) FAKE_CMD="paru --noconfirm -S $FAKE_PACKAGES_INSTALL" ;;
esac
#--------[ Skip Pre-Installed Pacakges ]--------#
if [ ! "$FAKE_PACKAGES_INSTALL" ]; then
_fake_layout_message "Install" "No new packages..."
if [ "$FAKE_PACKAGES_UNAVAILABLE" ]; then
_fake_layout_submessage "unavailable" "$FAKE_PACKAGES_UNAVAILABLE";
_fake_debug_error_pause
fi
if [ "$FAKE_PACKAGES_OLD" ]; then _fake_layout_submessage "up to date" "$FAKE_PACKAGES_OLD"; fi
echo ""
fi
#--------[ Install New Packages ]--------#
if [ "$FAKE_PACKAGES_INSTALL" ]; then
_fake_layout_message "Install" "$FAKE_CMD"
if [ "$FAKE_PACKAGES_UNAVAILABLE" ]; then
_fake_layout_submessage "unavailable" "$FAKE_PACKAGES_UNAVAILABLE"
_fake_debug_error_pause
fi
if [ "$FAKE_PACKAGES_OLD" ]; then _fake_layout_submessage "up to date" "$FAKE_PACKAGES_OLD"; fi
_fake_layout_submessage "installing" "$FAKE_PACKAGES_INSTALL"
echo ""
if [ "$FAKE_MODE_DEBUG" ] || [ "$FAKE_MODE_SLOW" ]; then sleep 3; fi
_fake_manager_package_automation "$FAKE_CMD"
_fake_debug
fi
fi
}

View file

@ -0,0 +1,46 @@
#!/usr/bin/env sh
#--------[ FAKE//OS Manager: Remove/Uninstall Software ]--------#
_fake_manager_package_remove () {
#--------[ Basic Error Handeling ]--------#
if [ ! "$2" ]; then
_fake_layout_message "Error" "Must specify packages..."
#--------[ Parse Package Arguments ]--------#
else
FAKE_PACKAGES=$(echo "$@" | sed -e 's/^remove\ //g')
#--------[ Compile Command ]--------#
FAKE_CMD=""
case $FAKE_MANAGER in
apt) FAKE_CMD="sudo apt -y remove $FAKE_PACKAGES" ;;
apk) FAKE_CMD="sudo apk del $FAKE_PACKAGES" ;;
yum) FAKE_CMD="sudo yum -y remove $FAKE_PACKAGES" ;;
pacman) FAKE_CMD="sudo pacman --noconfirm -R $FAKE_PACKAGES" ;;
paru) FAKE_CMD="paru --noconfirm -R $FAKE_PACKAGES" ;;
esac
#--------[ Print Info ]--------#
_fake_layout_message "Remove" "$FAKE_CMD" "remove" "$FAKE_PACKAGES"
#--------[ Run Command ]--------#
$FAKE_CMD
fi
}

View file

@ -0,0 +1,45 @@
#!/usr/bin/env sh
#--------[ FAKE//OS Manager: Search Packages ]--------#
_fake_manager_package_search () {
#--------[ Basic Error Handeling ]--------#
if [ ! "$2" ]; then
_fake_layout_message "Error" "Must specify packages..."
#--------[ Parse Package Arguments ]--------#
else
FAKE_PACKAGES=$(echo "$@" | sed -e 's/^search\ //g')
#--------[ Compile Command ]--------#
FAKE_CMD=""
case $FAKE_MANAGER in
apt) FAKE_CMD="apt-cache search $FAKE_PACKAGES" ;;
apk) FAKE_CMD="sudo apk search $FAKE_PACKAGES" ;;
dnf) FAKE_CMD="sudo dnf search $FAKE_PACKAGES" ;;
pacman) FAKE_CMD="pacman -Ss $FAKE_PACKAGES" ;;
paru) FAKE_CMD="paru -Ss $FAKE_PACKAGES" ;;
esac
#--------[ Print Info ]--------#
_fake_layout_message "Search" "$FAKE_CMD" "search" "$FAKE_PACKAGES"
#--------[ Run Command ]--------#
$FAKE_CMD
fi
}

View file

@ -0,0 +1,61 @@
#!/usr/bin/env sh
#--------[ FAKE//OS Manager: Update Software ]--------#
_fake_manager_package_update () {
#--------[ Configure Packages And Command ]--------#
FAKE_PACKAGES=""
FAKE_CMD=""
if [ "$(whoami)" != "root" ]; then echo && echo -n -e "${FCOLBOLD}FAKE//OS${FCOL0} Update "; fi
case $FAKE_MANAGER in
apt)
sudo apt -y update
FAKE_CMD="sudo apt -y upgrade"
FAKE_PACKAGES="$(apt list --upgradable 2>/dev/null | grep -v 'Listing' | sed -e 's/\/.*$//g' | tr '\n' ' ')"
;;
apk)
sudo apk update
FAKE_CMD="sudo apk upgrade"
FAKE_PACKAGES="$(apk list --upgradable | awk '{print $1}' | tr '\n' ' ')"
;;
dnf)
sudo dnf -y update
FAKE_CMD="sudo yum -y upgrade"
;;
pacman)
sudo pacman -Syyy
FAKE_CMD="sudo pacman --noconfirm -Su"
FAKE_PACKAGES="$(pacman -Quq | tr '\n' ' ')"
;;
paru)
paru -Syyy
FAKE_CMD="paru --noconfirm -Su"
FAKE_PACKAGES="$(paru -Quq | tr '\n' ' ')"
;;
esac
#--------[ Run Command ]--------#
if [ "$FAKE_PACKAGES" ]; then
_fake_layout_message "Update" "$FAKE_CMD" "update" "$FAKE_PACKAGES"
_fake_manager_package_automation "$FAKE_CMD"
else
_fake_layout_message "Update" "$FAKE_CMD" "update" "No package updates available..."
fi
#--------[ Update Other Non-Managed Software ]--------#
if [ "$(command -v pihole)" ]; then
pihole -up
fi
echo ""
}

View file

@ -0,0 +1,38 @@
#!/usr/bin/env sh
#--------[ Disable Default System Daemons ]--------#
_fake_manager_system_disable () {
#--------[ Basic Error Handeling ]--------#
if [ ! "$2" ]; then
_fake_layout_message "Error" "Must specify system daemon(s)..."
#--------[ Parse System Daemons ]--------#
else
TMP_DAEMONS=$(echo "$@" | sed -e 's/^disable\ //g')
#--------[ Print Command information ]--------#
_fake_layout_message "Disable Default Init Deamon(s)" "$TMP_DAEMONS"
#--------[ Loop Through Daemons ]--------#
for TMP_DAEMON in $TMP_DAEMONS; do
case $ENV_INIT in
"systemd") sudo systemctl disable $TMP_DAEMON ;;
"openrc") sudo rc-update del $TMP_DAEMON ;;
esac
done
fi
}

View file

@ -0,0 +1,38 @@
#!/usr/bin/env sh
#--------[ Enable Default System Daemons ]--------#
_fake_manager_system_enable () {
#--------[ Basic Error Handeling ]--------#
if [ ! "$2" ]; then
_fake_layout_message "Error" "Must specify system daemon(s)..."
#--------[ Parse System Daemons ]--------#
else
TMP_DAEMONS=$(echo "$@" | sed -e 's/^enable\ //g')
#--------[ Print Command information ]--------#
_fake_layout_message "Enable Default Init Deamon(s)" "$TMP_DAEMONS"
#--------[ Loop Through Daemons ]--------#
for TMP_DAEMON in $TMP_DAEMONS; do
case $ENV_INIT in
"systemd") sudo systemctl enable $TMP_DAEMON ;;
"openrc") sudo rc-update add $TMP_DAEMON ;;
esac
done
fi
}

View file

@ -0,0 +1,34 @@
#!/usr/bin/env sh
#--------[ Restart System Daemons ]--------#
_fake_manager_system_restart () {
#--------[ Basic Error Handeling ]--------#
if [ ! "$2" ]; then
_fake_layout_message "Error" "Must specify system daemon(s)..."
#--------[ Parse System Daemons ]--------#
else
TMP_DAEMONS=$(echo "$@" | sed -e 's/^restart\ //g')
#--------[ Print Command information ]--------#
_fake_layout_message "Restart System Deamon(s)" "$TMP_DAEMONS"
#--------[ Run Restart ]--------#
_fake_manager_system_stop "$@"
_fake_manager_system_start "$@"
echo ""
fi
}

View file

@ -0,0 +1,41 @@
#!/usr/bin/env sh
#--------[ Start System Daemons ]--------#
_fake_manager_system_start () {
#--------[ Basic Error Handeling ]--------#
if [ ! "$2" ]; then
_fake_layout_message "Error" "Must specify system daemon(s)..."
#--------[ Parse System Daemons ]--------#
else
TMP_DAEMONS=$(echo "$@")
TMP_DAEMONS=$(echo "$TMP_DAEMONS" | sed -e 's/^start\ //g')
TMP_DAEMONS=$(echo "$TMP_DAEMONS" | sed -e 's/^restart\ //g')
#--------[ Print Command information ]--------#
if [ "$1" == "start" ]; then _fake_layout_message "Start Deamon(s)" "$TMP_DAEMONS"; fi
#--------[ Loop Through Daemons ]--------#
for TMP_DAEMON in $TMP_DAEMONS; do
case $ENV_INIT in
"systemd") sudo systemctl start $TMP_DAEMON ;;
"openrc") sudo rc-service $TMP_DAEMON start ;;
esac
done
if [ "$1" == "start" ]; then echo ""; fi
fi
}

View file

@ -0,0 +1,41 @@
#!/usr/bin/env sh
#--------[ Start System Daemons ]--------#
_fake_manager_system_status () {
#--------[ Basic Error Handeling ]--------#
if [ ! "$2" ]; then
_fake_layout_message "Error" "Must specify system daemon(s)..."
echo ""
#--------[ Parse System Daemons ]--------#
else
TMP_DAEMONS=$(echo "$@")
TMP_DAEMONS=$(echo "$TMP_DAEMONS" | sed -e 's/^status\ //g')
#--------[ Print Command information ]--------#
#--------[ Loop Through Daemons ]--------#
for TMP_DAEMON in $TMP_DAEMONS; do
_fake_layout_message "Daemon Status" "$TMP_DAEMON"
case $ENV_INIT in
"systemd") systemctl status $TMP_DAEMON ;;
"openrc") rc-service $TMP_DAEMON status ;;
esac
echo ""
done
fi
}

View file

@ -0,0 +1,41 @@
#!/usr/bin/env sh
#--------[ Stop System Daemons ]--------#
_fake_manager_system_stop () {
#--------[ Basic Error Handeling ]--------#
if [ ! "$2" ]; then
_fake_layout_message "Error" "Must specify system daemon(s)..."
#--------[ Parse System Daemons ]--------#
else
TMP_DAEMONS=$(echo "$@")
TMP_DAEMONS=$(echo "$TMP_DAEMONS" | sed -e 's/^stop\ //g')
TMP_DAEMONS=$(echo "$TMP_DAEMONS" | sed -e 's/^restart\ //g')
#--------[ Print Command information ]--------#
if [ "$1" == "stop" ]; then _fake_layout_message "Stop System Deamon(s)" "$TMP_DAEMONS"; fi
#--------[ Loop Through Daemons ]--------#
for TMP_DAEMON in $TMP_DAEMONS; do
case $ENV_INIT in
"systemd") sudo systemctl stop $TMP_DAEMON ;;
"openrc") sudo rc-service $TMP_DAEMON stop ;;
esac
done
if [ "$1" == "stop" ]; then echo ""; fi
fi
}

View file

@ -0,0 +1,10 @@
#!/usr/bin/env sh
#--------[ LS Alias ]--------#
if [ ! "$(command -v busybox)" ]; then
alias ls='ls --color=auto' # Colorise LS
alias ll="ls -alh" # LL functionality
alias ip="ip -c" # Colorise IP
fi

View file

@ -0,0 +1,36 @@
#!/usr/bin/env sh
# $1 - New FAKE//OS config file
# $2 - System config file location
#--------[ Add To Config File ]--------#
_fake_utils_config_add () {
#--------[ Bakup Original Config ]--------#
_fake_utils_config_backup ${2}
#--------[ Message Output ]--------#
_fake_layout_message "Append Config" "${2}" "new" "${1}" "cat" "${2}.original + ${2}.fake > ${2}"
#--------[ Append Config ]--------#
mkdir -p $(dirname $2)
cp -r "${1}" "${2}.fake"
cat "${2}.original" > "${2}"
cat "${2}.fake" >> "${2}"
echo ""
#--------[ Debugging ]--------#
if [ "$FAKE_MODE_SLOW" ]; then sleep 3; fi
}

View file

@ -0,0 +1,14 @@
#!/usr/bin/env sh
# $1 - System config file location
#--------[ Backup Config File ]--------
_fake_utils_config_backup () {
if [ -f "${1}" ] && [ ! -f "${1}.original" ]; then
cp -rv "${1}" "${1}.original"
fi
}

View file

@ -0,0 +1,39 @@
#!/usr/bin/env sh
# $1 - New FAKE//OS config file
# $2 - System config file location
#--------[ Pull Remote Config Files ]--------#
_fake_utils_config_pull () {
#--------[ Git Clone ]--------#
if [ "$(echo $1 | grep 'git')" ]; then
rm -rf $2
mkdir -p $2
git clone --depth 1 $1 $2
_fake_layout_message "Git Pull" "$1 -> $2" "output" "$(ls $2 | tr '\n' ' ')"
#--------[ Curl Tar.Gz Pull ]--------#
elif [ "$(echo $1 | grep 'tar.gz')" ]; then
if [ ! "$(curl -Is $1 | grep '200 OK')" ]; then
_fake_layout_message "Error" "Remote file missing..." "missing" "$1"
else
mkdir -p $2
curl $1 | tar xzf - -C $2/
_fake_layout_message "Curl Pull" "$1 -> $2" "output" "$(ls $2 | tr '\n' ' ')"
fi
fi
#--------[ Debugging ]--------#
if [ "$FAKE_MODE_SLOW" ]; then sleep 3; fi
}

View file

@ -0,0 +1,47 @@
#!/usr/bin/env sh
# $1 - Search String
# $2 - Replace String
# $3 - System config file location
#--------[ Regex Find/Replace Config File ]--------#
_fake_utils_config_regex () {
#--------[ Backup Original Config ]--------#
_fake_utils_config_backup ${3}
#--------[ Message Output ]--------#
_fake_layout_message "Regex Find and Repalce" "${3}" "search" "${1}" "replace" "${2}"
#--------[ Parse and Clean Variables ]--------#
TMP_SEARCH="$1"
TMP_SEARCH="$(echo $TMP_SEARCH | sed 's/\//\\\//g' )"
TMP_SEARCH="$(echo $TMP_SEARCH | sed 's/\%/\\\%/g' )"
TMP_REPLACE="$2"
TMP_REPLACE="$(echo $TMP_REPLACE | sed 's/\//\\\//g' )"
TMP_REPLACE="$(echo $TMP_REPLACE | sed 's/\%/\\\%/g' )"
TMP_PATH="$3"
#--------[ Regex Find/Replace Config ]--------#
sed -i "s/$TMP_SEARCH/$TMP_REPLACE/g" $TMP_PATH
echo ""
#--------[ Debugging ]--------#
if [ "$FAKE_MODE_SLOW" ]; then sleep 3; fi
}

View file

@ -0,0 +1,35 @@
#!/usr/bin/env sh
# $1 - New FAKE//OS config file
# $2 - System config file location
#--------[ Replace Config File ]--------#
_fake_utils_config_replace () {
#--------[ Backup Original Config ]--------#
_fake_utils_config_backup ${2}
#--------[ Message Output ]--------#
_fake_layout_message "Replace Config" "${2}" "new" "${1}"
#--------[ Replace Config ]--------#
mkdir -p $(dirname $2)
cp -rv "${1}" "${2}.fake"
cp -rv "${1}" "${2}"
echo ""
#--------[ Debugging ]--------#
if [ "$FAKE_MODE_SLOW" ]; then sleep 3; fi
}

View file

@ -0,0 +1,21 @@
#!/usr/bin/env sh
# $1 - New FAKE//OS config file
# $2 - System config file location
#--------[ Restore Config File ]--------
_fake_utils_config_restore () {
if [ -f "${1}.original" ]; then
cp -r "${1}" "${1}.original"
if [ $? == 0 ]; then
_fake_layout_message "Restore Config" "${1}" "backup" "${1}.original"
cp -rv "${1}.original" "${1}"
fi
else
_fake_layout_message "Error" "No backup avaiable" "missing" "${1}.original"
fi
}

View file

@ -0,0 +1,26 @@
#!/usr/bin/env sh
#--------[ Print Environment Variables ]--------#
_fake_environment_print () {
echo ""
echo "$ENV_DISTRO [$ENV_INIT] $ENV_MANAGER"
echo "-------------------------------------"
echo "$ENV_MAKE $ENV_MODEL"
echo ""
if [ "$FAKE_MODE_DEBUG" ]; then echo "MODE_DEBUG"; fi
if [ "$FAKE_MODE_FAST" ]; then echo "MODE_FAST"; fi
if [ "$FAKE_MODE_SLOW" ]; then echo "MODE_SLOW"; fi
echo ""
if [ "$ENV_VIRTUAL" == "LXC" ]; then
echo "cpu: $ENV_CPU $ENV_ARCH $ENV_VTAG"
elif [ "$ENV_VIRTUAL" == "VM" ]; then
echo "cpu: $ENV_CPU $ENV_ARCH $ENV_VTAG"
else
echo "cpu: $ENV_CPU $ENV_ARCH"
fi
echo "mem: $ENV_MEMORY"
echo "gpu: $ENV_GPU"
echo "net: $ENV_NETWORK"
}

View file

@ -0,0 +1,13 @@
#!/usr/bin/env sh
#--------[ Gnome Extensions ]--------#
_fake_utils_gnome_extensions () {
echo " - enable [$1]"
if [ "$(_fake_utils_linux_status gdm | grep started)" ]; then
gnome-extensions enable "$1"
else
dbus-launch --exit-with-session gnome-extensions enable "$1"
fi
}

View file

@ -0,0 +1,22 @@
#!/usr/bin/env sh
#--------[ Gnome Settings ]--------#
_fake_utils_gnome_settings () {
if [ "$(_fake_utils_linux_status gdm | grep started)" ]; then
if [ "$3" ]; then
gsettings set "$1" "$2" "$3"
echo " - set [$2] $3"
else
echo "Graphical"
fi
else
if [ "$3" ]; then
dbus-launch --exit-with-session gsettings set "$1" "$2" "$3"
echo " - set [$2] $3"
else
echo "Terminal"
fi
fi
}

View file

@ -0,0 +1,15 @@
#!/usr/bin/env sh
#--------[ Cache Clear ]--------#
_fake_utils_linux_appdata () {
if [ ! -L $1 ]; then
_fake_layout_message "Move and link" "$1 -> /data/$2"
mv -v $1 /data/$2
ln -sfv /data/$2 $1
echo ""
else
_fake_layout_message "$1" "Symlink already exists..."
fi
}

View file

@ -0,0 +1,26 @@
#!/usr/bin/env sh
#--------[ Cache Clear ]--------#
_fake_utils_linux_flushcache () {
#--------[ Flush System Cache In Memory ]--------#
TMP_MEM_PRE=$(free -h | grep 'Mem:' | awk '{ print $4}')
echo ""
sudo -u root $ENV_SHELL -c "sync; echo 3 > /proc/sys/vm/drop_caches"
TMP_MEM_POST=$(free -h | grep 'Mem:' | awk '{ print $4}')
_fake_layout_message "Clear Cache" "echo 3 > /proc/sys/vm/drop_caches" "free memory" "$TMP_MEM_PRE -> $TMP_MEM_POST"
#--------[ Flush DNS Cache ]--------#
if [ "$(command -v systemctl)" ]; then
sudo systemd-resolve --flush-caches
sudo resolvectl flush-caches
elif [ "$(command -v ndsmasq)" ]; then
sudo killall -HUP dnsmasq
fi
}

View file

@ -0,0 +1,15 @@
#!/usr/bin/env sh
# $1 - System user
# $2 - Command
#--------[ Bootstrap User Shell ]--------#
_fake_utils_linux_shellstrap () {
sudo -u "$1" $ENV_SHELL -c ". /usr/share/fake-os/fake_init.sh --quiet && $2"
}

View file

@ -0,0 +1,34 @@
#!/usr/bin/env sh
# $1 - Init System Daemon
#--------[ Cache Clear ]--------#
_fake_utils_linux_status () {
#--------[ Get SystemD Data ]--------#
if [ "$ENV_INIT" == "systemd" ]; then
TMP_ENABLED="$(systemctl status $1 | grep -e 'Loaded' | grep -e 'enabled;')"
TMP_STARTED="$(systemctl status $1 | grep -e 'Active' | grep -e 'running')"
#--------[ Get OpenRC Data ]--------#
elif [ "$ENV_INIT" == "openrc" ]; then
TMP_ENABLED="$(rc-update -a | grep gdm | grep -e 'boot' -e 'default' -e 'sysinit')"
TMP_STARTED="$(rc-service $1 status | grep started)"
fi
#--------[ Output Data ]--------#
if [ "$TMP_ENABLED" ] && [ "$TMP_STARTED" ]; then echo "enabled started"; fi
if [ ! "$TMP_ENABLED" ] && [ "$TMP_STARTED" ]; then echo "disabled started"; fi
if [ "$TMP_ENABLED" ] && [ ! "$TMP_STARTED" ]; then echo "enabled stopped"; fi
if [ ! "$TMP_ENABLED" ] && [ ! "$TMP_STARTED" ]; then echo "disabled stopped"; fi
}