From 64e8492c04c511bcb4ebd3a9f9d524c56812a569 Mon Sep 17 00:00:00 2001 From: Nyx <144965845+nnyyxxxx@users.noreply.github.com> Date: Sun, 22 Sep 2024 13:59:39 -0400 Subject: [PATCH] Move scripts around & refactor existing ones (#573) * Refactor existing shell scripts & moving scripts around * attempt to fix conflicts * fix extra space * fix lowercase Y issues * Fix conflicts * fix scattered stuff around toml * fix syntax issue --------- Co-authored-by: nnyyxxxx --- core/tabs/applications-setup/browser-setup.sh | 14 +++++------ .../docker-setup.sh | 4 +-- .../grub-theme.sh | 0 .../applications-setup/linutil-installer.sh | 2 +- .../applications-setup/office-suite-setup.sh | 25 +++++++++++-------- core/tabs/applications-setup/setup-flatpak.sh | 14 ++--------- core/tabs/applications-setup/tab_data.toml | 10 ++++++++ core/tabs/system-setup/system-cleanup.sh | 2 +- core/tabs/system-setup/tab_data.toml | 10 -------- .../{system-setup => utils}/auto-mount.sh | 0 .../samba-ssh-setup.sh | 24 +++++++++--------- core/tabs/utils/tab_data.toml | 10 ++++++++ 12 files changed, 59 insertions(+), 56 deletions(-) mode change 100644 => 100755 core/tabs/applications-setup/browser-setup.sh rename core/tabs/{system-setup => applications-setup}/docker-setup.sh (97%) 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 (90%) 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 6d93de25..ae3ba06b --- 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 @@ -59,8 +59,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 @@ -85,8 +85,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 @@ -124,8 +124,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 @@ -173,8 +173,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 @@ -197,8 +197,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 diff --git a/core/tabs/system-setup/docker-setup.sh b/core/tabs/applications-setup/docker-setup.sh similarity index 97% rename from core/tabs/system-setup/docker-setup.sh rename to core/tabs/applications-setup/docker-setup.sh index 69e8ebce..afcd1572 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 @@ -84,4 +84,4 @@ install_components() { checkEnv checkEscalationTool -install_components +install_components \ No newline at end of file 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 c1594309..63f9f836 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 15889a50..04b8a04c 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 @@ -28,8 +28,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 @@ -52,8 +52,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 @@ -70,8 +70,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" "$PACKAGER" install -y ./softmaker-freeoffice-2024_1218-01_amd64.deb @@ -92,12 +93,15 @@ install_freeoffice() { printf "%b\n" "${RED}Unsupported package manager: ""$PACKAGER""${RC}" exit 1 ;; - 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 @@ -112,8 +116,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 @@ -128,8 +132,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 @@ -144,8 +148,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 @@ -159,7 +163,6 @@ install_pdfstudio() { fi } - officeSuiteSetup() { clear printf "%b\n" "Office Suite Setup Script" 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 ef0e04aa..75da28af --- a/core/tabs/applications-setup/setup-flatpak.sh +++ b/core/tabs/applications-setup/setup-flatpak.sh @@ -25,24 +25,14 @@ 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 - ;; *) - 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" "${YELLOW}Detected Flatpak package manager but Flathub remote is not added. Would you like to add it? (y/N): ${RC}" read -r add_remote diff --git a/core/tabs/applications-setup/tab_data.toml b/core/tabs/applications-setup/tab_data.toml index aeacba1b..4d6b0ef9 100644 --- a/core/tabs/applications-setup/tab_data.toml +++ b/core/tabs/applications-setup/tab_data.toml @@ -124,6 +124,11 @@ description = "DWM is a dynamic window manager for X.\nIt manages windows in til script = "dwmtitus-setup.sh" task_list = "installation, privileged file modification, systemd actions" +[[data]] +name = "Docker" +script = "docker-setup.sh" +task_list = "installation, systemd actions" + [[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" @@ -136,6 +141,11 @@ description = "Flatpak is a universal application sandbox for Linux that uses is script = "setup-flatpak.sh" task_list = "installation" +[[data]] +name = "Grub Theme" +script = "grub-theme.sh" +task_list = "privileged file modification" + [[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 bf143aa6..198a9d68 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 e36bbca0..dda034df 100644 --- a/core/tabs/system-setup/tab_data.toml +++ b/core/tabs/system-setup/tab_data.toml @@ -63,11 +63,6 @@ description = "Enables Virtualization through dnf" script = "fedora/virtualization.sh" task_list = "installation" -[[data]] -name = "Auto Mount Drive" -script = "auto-mount.sh" -task_list = "privileged file modification" - [[data]] name = "Build Prerequisites" description = "This script is designed to handle the installation of various software dependencies across different Linux distributions" @@ -102,11 +97,6 @@ description = "This script is designed to handle the installation and configurat script = "global-theme.sh" task_list = "installation, privileged file modification" -[[data]] -name = "Grub Theme" -script = "grub-theme.sh" -task_list = "privileged file modification" - [[data]] name = "Remove Snaps" description = "This script is designed to remove snap" 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 90% rename from core/tabs/system-setup/samba-ssh-setup.sh rename to core/tabs/utils/samba-ssh-setup.sh index 95edac08..52004a27 100755 --- a/core/tabs/system-setup/samba-ssh-setup.sh +++ b/core/tabs/utils/samba-ssh-setup.sh @@ -68,16 +68,16 @@ 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 + if [ "$MODIFY_SAMBA" = "Y" ] || [ "$MODIFY_SAMBA" = "y" ]; then "$ESCALATION_TOOL" "$EDITOR" "$SAMBA_CONFIG" fi else 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 @@ -97,7 +97,7 @@ setup_samba() { stty echo printf "Confirm Samba password: " stty -echo - read SAMBA_PASSWORD_CONFIRM + read -r SAMBA_PASSWORD_CONFIRM stty echo printf "\n" if [ "$SAMBA_PASSWORD" = "$SAMBA_PASSWORD_CONFIRM" ]; then @@ -163,12 +163,12 @@ 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 "%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 @@ -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 d825840c..1f39af30 100644 --- a/core/tabs/utils/tab_data.toml +++ b/core/tabs/utils/tab_data.toml @@ -19,6 +19,11 @@ 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" +task_list = "privileged file modification" + [[data.entries]] name = "Change Orientation" description = "This utility is designed to change the orientation of monitors in your system" @@ -55,6 +60,11 @@ 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" +script = "samba-ssh-setup.sh" +task_list = "installation, systemd actions, privileged file modification" + [[data.entries]] name = "Scale Monitors" description = "This utility is designed to change the scaling of monitors in your system"