From 460db3204f96bacee42e2e4acc7bb6b6197f5b55 Mon Sep 17 00:00:00 2001 From: nnyyxxxx Date: Fri, 20 Sep 2024 18:00:00 -0400 Subject: [PATCH] Refactoring existing shell scripts & moving scripts around --- core/tabs/applications-setup/browser-setup.sh | 16 +++++------ .../docker-setup.sh | 2 +- .../grub-theme.sh | 0 .../applications-setup/linutil-installer.sh | 2 +- .../applications-setup/office-suite-setup.sh | 27 ++++++++++--------- core/tabs/applications-setup/setup-flatpak.sh | 26 ++++-------------- core/tabs/applications-setup/tab_data.toml | 8 ++++++ core/tabs/system-setup/system-cleanup.sh | 2 +- core/tabs/system-setup/tab_data.toml | 16 ----------- .../{system-setup => utils}/auto-mount.sh | 0 .../samba-ssh-setup.sh | 24 ++++++++--------- core/tabs/utils/tab_data.toml | 8 ++++++ 12 files changed, 59 insertions(+), 72 deletions(-) mode change 100644 => 100755 core/tabs/applications-setup/browser-setup.sh rename core/tabs/{system-setup => applications-setup}/docker-setup.sh (98%) rename core/tabs/{system-setup => applications-setup}/grub-theme.sh (100%) mode change 100644 => 100755 core/tabs/applications-setup/setup-flatpak.sh rename core/tabs/{system-setup => utils}/auto-mount.sh (100%) rename core/tabs/{system-setup => utils}/samba-ssh-setup.sh (91%) diff --git a/core/tabs/applications-setup/browser-setup.sh b/core/tabs/applications-setup/browser-setup.sh old mode 100644 new mode 100755 index 62b8cbffd..15270ec37 --- a/core/tabs/applications-setup/browser-setup.sh +++ b/core/tabs/applications-setup/browser-setup.sh @@ -3,8 +3,8 @@ . ../common-script.sh install_chrome() { - printf "%b\n" "${YELLOW}Installing Google Chrome..${RC}." if ! command_exists google-chrome; then + printf "%b\n" "${YELLOW}Installing Google Chrome..${RC}." case "$PACKAGER" in apt-get|nala) curl -O https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb @@ -33,8 +33,8 @@ install_chrome() { } install_thorium() { - printf "%b\n" "${YELLOW}Installing Thorium Browser...${RC}" if ! command_exists thorium-browser; then + printf "%b\n" "${YELLOW}Installing Thorium Browser...${RC}" case "$PACKAGER" in apt-get|nala) "$ESCALATION_TOOL" rm -fv /etc/apt/sources.list.d/thorium.list @@ -61,8 +61,8 @@ install_thorium() { } install_firefox() { - printf "%b\n" "${YELLOW}Installing Mozilla Firefox...${RC}" if ! command_exists firefox; then + printf "%b\n" "${YELLOW}Installing Mozilla Firefox...${RC}" case "$PACKAGER" in apt-get|nala) "$ESCALATION_TOOL" "$PACKAGER" install -y firefox-esr @@ -86,8 +86,8 @@ install_firefox() { } install_librewolf() { - printf "%b\n" "${YELLOW}Installing Librewolf...${RC}" if ! command_exists librewolf; then + printf "%b\n" "${YELLOW}Installing Librewolf...${RC}" case "$PACKAGER" in apt-get|nala) "$ESCALATION_TOOL" "$PACKAGER" install -y gnupg lsb-release apt-transport-https ca-certificates @@ -128,8 +128,8 @@ Signed-By: /usr/share/keyrings/librewolf.gpg" | "$ESCALATION_TOOL" tee /etc/apt/ } install_brave() { - printf "%b\n" "${YELLOW}Installing Brave...${RC}" if ! command_exists brave; then + printf "%b\n" "${YELLOW}Installing Brave...${RC}" case "$PACKAGER" in apt-get|nala) "$ESCALATION_TOOL" "$PACKAGER" install -y curl @@ -177,8 +177,8 @@ install_vivaldi() { } install_chromium() { - printf "%b\n" "${YELLOW}Installing Chromium...${RC}" if ! command_exists chromium; then + printf "%b\n" "${YELLOW}Installing Chromium...${RC}" case "$PACKAGER" in apt-get|nala|zypper) "$ESCALATION_TOOL" "$PACKAGER" install -y chromium @@ -200,8 +200,8 @@ install_chromium() { } install_lynx() { - printf "%b\n" "${YELLOW}Installing Lynx...${RC}" if ! command_exists lynx; then + printf "%b\n" "${YELLOW}Installing Lynx...${RC}" case "$PACKAGER" in pacman) "$ESCALATION_TOOL" "$PACKAGER" -S --noconfirm lynx @@ -229,7 +229,7 @@ browserSetup() { printf "%b\n" "7. Thorium" printf "%b\n" "8. Lynx" printf "%b\n" "----------------------------" - printf "%b\n" "Enter your choices (e.g., 1 3 5): " + printf "%b" "Enter your choices (e.g., 1 3 5): " read -r choice for ch in $choice; do case $ch in diff --git a/core/tabs/system-setup/docker-setup.sh b/core/tabs/applications-setup/docker-setup.sh similarity index 98% rename from core/tabs/system-setup/docker-setup.sh rename to core/tabs/applications-setup/docker-setup.sh index b082788b1..77f3da98c 100755 --- a/core/tabs/system-setup/docker-setup.sh +++ b/core/tabs/applications-setup/docker-setup.sh @@ -9,7 +9,7 @@ choose_installation() { printf "%b\n" "1. ${YELLOW}Docker${RC}" printf "%b\n" "2. ${YELLOW}Docker Compose${RC}" printf "%b\n" "3. ${YELLOW}Both${RC}" - printf "Enter your choice [1-3]: " + printf "%b" "Enter your choice [1-3]: " read -r CHOICE case "$CHOICE" in diff --git a/core/tabs/system-setup/grub-theme.sh b/core/tabs/applications-setup/grub-theme.sh similarity index 100% rename from core/tabs/system-setup/grub-theme.sh rename to core/tabs/applications-setup/grub-theme.sh diff --git a/core/tabs/applications-setup/linutil-installer.sh b/core/tabs/applications-setup/linutil-installer.sh index 7fbb09a65..37461bb9c 100755 --- a/core/tabs/applications-setup/linutil-installer.sh +++ b/core/tabs/applications-setup/linutil-installer.sh @@ -59,4 +59,4 @@ installLinutil() { checkEnv checkEscalationTool checkAURHelper -installLinutil +installLinutil \ No newline at end of file diff --git a/core/tabs/applications-setup/office-suite-setup.sh b/core/tabs/applications-setup/office-suite-setup.sh index bbf546020..3d05d8d5c 100644 --- a/core/tabs/applications-setup/office-suite-setup.sh +++ b/core/tabs/applications-setup/office-suite-setup.sh @@ -3,8 +3,8 @@ . ../common-script.sh install_onlyoffice() { - printf "%b\n" "${YELLOW}Installing Only Office..${RC}." if ! command_exists onlyoffice-desktopeditors; then + printf "%b\n" "${YELLOW}Installing Only Office..${RC}." case "$PACKAGER" in apt-get|nala) curl -O https://download.onlyoffice.com/install/desktop/editors/linux/onlyoffice-desktopeditors_amd64.deb @@ -27,8 +27,8 @@ install_onlyoffice() { } install_libreoffice() { - printf "%b\n" "${YELLOW}Installing Libre Office...${RC}" if ! command_exists libreoffice; then + printf "%b\n" "${YELLOW}Installing Libre Office...${RC}" case "$PACKAGER" in apt-get|nala) "$ESCALATION_TOOL" "$PACKAGER" install -y libreoffice-core @@ -51,8 +51,8 @@ install_libreoffice() { } install_wpsoffice() { - printf "%b\n" "${YELLOW}Installing WPS Office...${RC}" if ! command_exists com.wps.Office; then + printf "%b\n" "${YELLOW}Installing WPS Office...${RC}" case "$PACKAGER" in pacman) "$AUR_HELPER" -S --noconfirm wps-office @@ -69,8 +69,9 @@ install_wpsoffice() { # needs to be updated every year for latest version install_freeoffice() { - printf "%b\n" "${YELLOW}Installing Free Office...${RC}" - case "$PACKAGER" in + if ! command_exists softmaker-freeoffice-2024 freeoffice softmaker; then + printf "%b\n" "${YELLOW}Installing Free Office...${RC}" + case "$PACKAGER" in apt-get|nala) curl -O https://www.softmaker.net/down/softmaker-freeoffice-2024_1218-01_amd64.deb "$ESCALATION_TOOL" dpkg -i softmaker-freeoffice-2024_1218-01_amd64.deb @@ -91,12 +92,15 @@ install_freeoffice() { *) printf "%b\n" "${RED}The script does not support your Distro. Install manually..${RC}" ;; - esac + esac + else + printf "%b\n" "${GREEN}Free Office is already installed.${RC}" + fi } install_evince() { - printf "%b\n" "${YELLOW}Installing Evince...${RC}" if ! command_exists evince; then + printf "%b\n" "${YELLOW}Installing Evince...${RC}" case "$PACKAGER" in pacman) "$ESCALATION_TOOL" "$PACKAGER" -S --noconfirm evince @@ -111,8 +115,8 @@ install_evince() { } install_okular() { - printf "%b\n" "${YELLOW}Installing Evince...${RC}" if ! command_exists okular; then + printf "%b\n" "${YELLOW}Installing Okular...${RC}" case "$PACKAGER" in pacman) "$ESCALATION_TOOL" "$PACKAGER" -S --noconfirm okular @@ -127,8 +131,8 @@ install_okular() { } install_pdfstudioviewer() { - printf "%b\n" "${YELLOW}Installing PDF Studio Viewer...${RC}" if ! command_exists pdfstudioviewer2024/pdfstudioviewer2024; then + printf "%b\n" "${YELLOW}Installing PDF Studio Viewer...${RC}" curl -O https://download.qoppa.com/pdfstudioviewer/PDFStudioViewer_linux64.sh "$ESCALATION_TOOL" chmod +x PDFStudioViewer_linux64.sh if sh PDFStudioViewer_linux64.sh; then @@ -143,8 +147,8 @@ install_pdfstudioviewer() { } install_pdfstudio() { - printf "%b\n" "${YELLOW}Installing PDF Studio Viewer...${RC}" if ! command_exists pdfstudio2024/pdfstudio2024; then + printf "%b\n" "${YELLOW}Installing PDF Studio...${RC}" curl -O https://download.qoppa.com/pdfstudio/PDFStudio_linux64.sh "$ESCALATION_TOOL" chmod +x PDFStudio_linux64.sh if sh PDFStudio_linux64.sh; then @@ -158,7 +162,6 @@ install_pdfstudio() { fi } - officeSuiteSetup() { clear printf "%b\n" "Office Suite Setup Script" @@ -175,7 +178,7 @@ officeSuiteSetup() { printf "%b\n" "7. PDF Studio Viewer" printf "%b\n" "8. PDF Studio (Paid Software)" printf "%b\n" "----------------------------" - printf "%b\n" "Enter your choices (e.g., 1 3 5): " + printf "%b" "Enter your choices (e.g., 1 3 5): " read -r choice for ch in $choice; do case $ch in diff --git a/core/tabs/applications-setup/setup-flatpak.sh b/core/tabs/applications-setup/setup-flatpak.sh old mode 100644 new mode 100755 index 66f8a8030..9dd4002ec --- a/core/tabs/applications-setup/setup-flatpak.sh +++ b/core/tabs/applications-setup/setup-flatpak.sh @@ -25,32 +25,16 @@ setup_flatpak() { pacman) "$ESCALATION_TOOL" "$PACKAGER" -S --needed --noconfirm flatpak ;; - apt-get|nala) - "$ESCALATION_TOOL" "$PACKAGER" install -y flatpak - ;; - dnf) - "$ESCALATION_TOOL" "$PACKAGER" install -y flatpak # Fedora should have flatpak already installed, this is just a failsafe - ;; - zypper) - "$ESCALATION_TOOL" "$PACKAGER" install -y flatpak - ;; - yum) - "$ESCALATION_TOOL" "$PACKAGER" install -y flatpak - ;; - xbps-install) - "$ESCALATION_TOOL" "$PACKAGER" install -S flatpak - ;; *) - printf "%b\n" "${RED}Unsupported package manager: "$PACKAGER"${RC}" - exit 1 + "$ESCALATION_TOOL" "$PACKAGER" install -y flatpak ;; esac printf "%b\n" "Adding Flathub remote..." "$ESCALATION_TOOL" flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo else - if command -v flatpak >/dev/null 2>&1; then + if command_exists flatpak; then if ! flatpak remotes | grep -q "flathub"; then - printf "%b\n" "${YELLOW}Detected Flatpak package manager but Flathub remote is not added. Would you like to add it? (y/n)${RC}" + printf "%b" "${YELLOW}Detected Flatpak package manager but Flathub remote is not added. Would you like to add it? (Y/n): ${RC}" read -r add_remote case "$add_remote" in [Yy]*) @@ -70,14 +54,14 @@ setup_flatpak() { # Only used for Ubuntu GNOME. Ubuntu GNOME doesnt allow flathub to be added as a remote to their store. # So in case the user wants to use a GUI siftware manager they can setup it here if [ "$DE" = "GNOME" ]; then - printf "%b\n" "${YELLOW}Detected GNOME desktop environment. Would you like to install GNOME Software plugin for Flatpak? (y/n)${RC}" + printf "%b" "${YELLOW}Detected GNOME desktop environment. Would you like to install GNOME Software plugin for Flatpak? (Y/n): ${RC}" read -r install_gnome if [ "$install_gnome" = "y" ] || [ "$install_gnome" = "Y" ]; then "$ESCALATION_TOOL" "$PACKAGER" install -y gnome-software-plugin-flatpak fi # Useful for Debian KDE spin as well elif [ "$DE" = "KDE" ]; then - printf "%b\n" "${YELLOW}Detected KDE desktop environment. Would you like to install KDE Plasma Discover backend for Flatpak? (y/n)${RC}" + printf "%b" "${YELLOW}Detected KDE desktop environment. Would you like to install KDE Plasma Discover backend for Flatpak? (Y/n): ${RC}" read -r install_kde if [ "$install_kde" = "y" ] || [ "$install_kde" = "Y" ]; then "$ESCALATION_TOOL" "$PACKAGER" install -y plasma-discover-backend-flatpak diff --git a/core/tabs/applications-setup/tab_data.toml b/core/tabs/applications-setup/tab_data.toml index 1b72b0e53..363ad0341 100644 --- a/core/tabs/applications-setup/tab_data.toml +++ b/core/tabs/applications-setup/tab_data.toml @@ -24,6 +24,10 @@ name = "DWM-Titus" description = "DWM is a dynamic window manager for X.\nIt manages windows in tiled, monocle and floating layouts.\nAll of the layouts can be applied dynamically, optimising the environment for the application in use and the task performed.\nThis command installs and configures DWM and a desktop manager.\nThe list of patches applied can be found in CTT's DWM repository\nhttps://github.com/ChrisTitusTech/dwm-titus" script = "dwmtitus-setup.sh" +[[data]] +name = "Docker Setup" +script = "docker-setup.sh" + [[data]] name = "Fastfetch" description = "Fastfetch is a neofetch-like tool for fetching system information and displaying it prettily.\nIt is written mainly in C, with performance and customizability in mind.\nThis command installs fastfetch and configures from CTT's mybash repository.\nhttps://github.com/ChrisTitusTech/mybash" @@ -34,6 +38,10 @@ name = "Flatpak / Flathub" description = "Flatpak is a universal application sandbox for Linux that uses isolated packages from Flathub to prevent conflicts and system alterations, while alleviating dependency concerns.\nThis command installs Flatpak and adds the Flathub repository" script = "setup-flatpak.sh" +[[data]] +name = "Grub Theme Setup" +script = "grub-theme.sh" + [[data]] name = "Kitty" description = "kitty is a free and open-source GPU-accelerated terminal emulator for Linux, macOS, and some BSD distributions, focused on performance and features.\nkitty is written in a mix of C and Python programming languages.\n This command installs and configures kitty." diff --git a/core/tabs/system-setup/system-cleanup.sh b/core/tabs/system-setup/system-cleanup.sh index 40d5be2a4..a8be27703 100644 --- a/core/tabs/system-setup/system-cleanup.sh +++ b/core/tabs/system-setup/system-cleanup.sh @@ -40,7 +40,7 @@ common_cleanup() { } clean_data() { - printf "%b\n" "${YELLOW}Clean up old cache files and empty the trash? (y/N): ${RC}" + printf "%b" "${YELLOW}Clean up old cache files and empty the trash? (y/N): ${RC}" read -r clean_response case $clean_response in y|Y) diff --git a/core/tabs/system-setup/tab_data.toml b/core/tabs/system-setup/tab_data.toml index 22612d94d..57a3fbbb5 100644 --- a/core/tabs/system-setup/tab_data.toml +++ b/core/tabs/system-setup/tab_data.toml @@ -55,19 +55,11 @@ name = "Virtualization Setup" description = "Enables Virtualization through dnf" script = "fedora/virtualization.sh" -[[data]] -name = "Auto Mount Drive" -script = "auto-mount.sh" - [[data]] name = "Build Prerequisites" description = "This script is designed to handle the installation of various software dependencies across different Linux distributions" script = "compile-setup.sh" -[[data]] -name = "Docker Setup" -script = "docker-setup.sh" - [[data]] name = "Full System Cleanup" script = "system-cleanup.sh" @@ -87,15 +79,7 @@ name = "Global Theme" description = "This script is designed to handle the installation and configuration of global theming" script = "global-theme.sh" -[[data]] -name = "Grub Theme Setup" -script = "grub-theme.sh" - [[data]] name = "Remove Snaps" description = "This script is designed to remove snap" script = "remove-snaps.sh" - -[[data]] -name = "SSH-Samba Setup" -script = "samba-ssh-setup.sh" diff --git a/core/tabs/system-setup/auto-mount.sh b/core/tabs/utils/auto-mount.sh similarity index 100% rename from core/tabs/system-setup/auto-mount.sh rename to core/tabs/utils/auto-mount.sh diff --git a/core/tabs/system-setup/samba-ssh-setup.sh b/core/tabs/utils/samba-ssh-setup.sh similarity index 91% rename from core/tabs/system-setup/samba-ssh-setup.sh rename to core/tabs/utils/samba-ssh-setup.sh index 4989a2223..96e754e12 100755 --- a/core/tabs/system-setup/samba-ssh-setup.sh +++ b/core/tabs/utils/samba-ssh-setup.sh @@ -68,7 +68,7 @@ setup_samba() { if [ -f "$SAMBA_CONFIG" ]; then printf "%b\n" "${YELLOW}Samba configuration file already exists in $SAMBA_CONFIG.${RC}" - printf "Do you want to modify the existing Samba configuration? (yes/no): " + printf "%b" "Do you want to modify the existing Samba configuration? (Y/n): " read -r MODIFY_SAMBA if [ "$MODIFY_SAMBA" = "yes" ]; then "$ESCALATION_TOOL" "$EDITOR" "$SAMBA_CONFIG" @@ -77,7 +77,7 @@ setup_samba() { printf "%b\n" "${YELLOW}No existing Samba configuration found. Setting up a new one...${RC}" # Prompt user for shared directory path - printf "Enter the path for the Samba share (default: /srv/samba/share): " + printf "%b" "Enter the path for the Samba share (default: /srv/samba/share): " read -r SHARED_DIR SHARED_DIR=${SHARED_DIR:-/srv/samba/share} @@ -86,7 +86,7 @@ setup_samba() { "$ESCALATION_TOOL" chmod -R 0777 "$SHARED_DIR" # Add a new Samba user - printf "Enter Samba username: " + printf "%b" "Enter Samba username: " read -r SAMBA_USER # Loop until the passwords match @@ -163,14 +163,14 @@ setup_ssh_samba(){ clear # Display menu - printf "Select an option:\n" - printf "1. Setup SSH\n" - printf "2. Setup Samba\n" - printf "3. Configure Firewall\n" - printf "4. Setup All\n" - printf "5. Exit\n" - - printf "Enter your choice [1-5]: " + printf "%b\n" "Select an option:" + printf "%b\n" "1. Setup SSH" + printf "%b\n" "2. Setup Samba" + printf "%b\n" "3. Configure Firewall" + printf "%b\n" "4. Setup All" + printf "%b\n" "5. Exit" + + printf "%b" "Enter your choice [1-5]: " read CHOICE case "$CHOICE" in @@ -203,4 +203,4 @@ setup_ssh_samba(){ checkEnv checkEscalationTool -setup_ssh_samba +setup_ssh_samba \ No newline at end of file diff --git a/core/tabs/utils/tab_data.toml b/core/tabs/utils/tab_data.toml index 050d72f1f..c0b0b4676 100644 --- a/core/tabs/utils/tab_data.toml +++ b/core/tabs/utils/tab_data.toml @@ -19,6 +19,10 @@ name = "Auto Detect Displays" description = "This utility is designed to detect and apply recommended configuration for monitors connected with your system" script = "monitor-control/auto_detect_displays.sh" +[[data]] +name = "Auto Mount Drive" +script = "auto-mount.sh" + [[data.entries]] name = "Change Orientation" description = "This utility is designed to change the orientation of monitors in your system" @@ -55,6 +59,10 @@ description = "This utility is designed to reset scaling of a monitor in your sy script = "monitor-control/reset_scaling.sh" matches = true +[[data]] +name = "SSH-Samba Setup" +script = "samba-ssh-setup.sh" + [[data.entries]] name = "Scale Monitors" description = "This utility is designed to change the scaling of monitors in your system"