From e5ddd2ee4891de32b62604f8cbf2cc979d517bf5 Mon Sep 17 00:00:00 2001 From: Liam <33645555+lj3954@users.noreply.github.com> Date: Sun, 21 Jul 2024 13:19:03 -0700 Subject: [PATCH 1/2] refactor: Use common script to avoid code duplication --- src/commands/common-script.sh | 2 + src/commands/dotfiles/alacritty-setup.sh | 58 -------------------- src/commands/dotfiles/kitty-setup.sh | 58 -------------------- src/commands/dotfiles/rofi-setup.sh | 58 -------------------- src/commands/system-setup/1-compile-setup.sh | 58 -------------------- src/commands/system-setup/2-gaming-setup.sh | 55 ------------------- src/commands/system-update.sh | 57 ------------------- src/list.rs | 21 +++++-- 8 files changed, 17 insertions(+), 350 deletions(-) diff --git a/src/commands/common-script.sh b/src/commands/common-script.sh index a8d43871..30353cc0 100644 --- a/src/commands/common-script.sh +++ b/src/commands/common-script.sh @@ -1,5 +1,7 @@ #!/bin/sh -e +# shellcheck disable=SC2034 + RC='\033[0m' RED='\033[31m' YELLOW='\033[33m' diff --git a/src/commands/dotfiles/alacritty-setup.sh b/src/commands/dotfiles/alacritty-setup.sh index bf8473d5..4ef110f6 100755 --- a/src/commands/dotfiles/alacritty-setup.sh +++ b/src/commands/dotfiles/alacritty-setup.sh @@ -1,63 +1,5 @@ #!/bin/sh -e -RC='\033[0m' -RED='\033[31m' -YELLOW='\033[33m' -GREEN='\033[32m' - -command_exists() { - which $1 >/dev/null 2>&1 -} - -checkEnv() { - ## Check for requirements. - REQUIREMENTS='curl groups sudo' - for req in ${REQUIREMENTS}; do - if ! command_exists ${req}; then - echo -e "${RED}To run me, you need: ${REQUIREMENTS}${RC}" - exit 1 - fi - done - - ## Check Package Handler - PACKAGEMANAGER='apt-get dnf pacman zypper' - for pgm in ${PACKAGEMANAGER}; do - if command_exists ${pgm}; then - PACKAGER=${pgm} - echo "Using ${pgm}" - break - fi - done - - if [ -z "${PACKAGER}" ]; then - echo -e "${RED}Can't find a supported package manager${RC}" - exit 1 - fi - - ## Check SuperUser Group - SUPERUSERGROUP='wheel sudo root' - for sug in ${SUPERUSERGROUP}; do - if groups | grep -q ${sug}; then - SUGROUP=${sug} - echo "Super user group ${SUGROUP}" - break - fi - done - - ## Check if member of the sudo group. - if ! groups | grep -q ${SUGROUP}; then - echo -e "${RED}You need to be a member of the sudo group to run me!${RC}" - exit 1 - fi - - DTYPE="unknown" # Default to unknown - # Use /etc/os-release for modern distro identification - if [ -f /etc/os-release ]; then - . /etc/os-release - DTYPE=$ID - fi -} - setupAlacritty() { echo "Install Alacritty if not already installed..." if ! command_exists alacritty; then diff --git a/src/commands/dotfiles/kitty-setup.sh b/src/commands/dotfiles/kitty-setup.sh index 52167460..60c9efb9 100755 --- a/src/commands/dotfiles/kitty-setup.sh +++ b/src/commands/dotfiles/kitty-setup.sh @@ -1,63 +1,5 @@ #!/bin/sh -e -RC='\033[0m' -RED='\033[31m' -YELLOW='\033[33m' -GREEN='\033[32m' - -command_exists() { - which $1 >/dev/null 2>&1 -} - -checkEnv() { - ## Check for requirements. - REQUIREMENTS='curl groups sudo' - for req in ${REQUIREMENTS}; do - if ! command_exists ${req}; then - echo -e "${RED}To run me, you need: ${REQUIREMENTS}${RC}" - exit 1 - fi - done - - ## Check Package Handler - PACKAGEMANAGER='apt-get dnf pacman zypper' - for pgm in ${PACKAGEMANAGER}; do - if command_exists ${pgm}; then - PACKAGER=${pgm} - echo "Using ${pgm}" - break - fi - done - - if [ -z "${PACKAGER}" ]; then - echo -e "${RED}Can't find a supported package manager${RC}" - exit 1 - fi - - ## Check SuperUser Group - SUPERUSERGROUP='wheel sudo root' - for sug in ${SUPERUSERGROUP}; do - if groups | grep -q ${sug}; then - SUGROUP=${sug} - echo "Super user group ${SUGROUP}" - break - fi - done - - ## Check if member of the sudo group. - if ! groups | grep -q ${SUGROUP}; then - echo -e "${RED}You need to be a member of the sudo group to run me!${RC}" - exit 1 - fi - - DTYPE="unknown" # Default to unknown - # Use /etc/os-release for modern distro identification - if [ -f /etc/os-release ]; then - . /etc/os-release - DTYPE=$ID - fi -} - setupKitty() { echo "Install Kitty if not already installed..." if ! command_exists kitty; then diff --git a/src/commands/dotfiles/rofi-setup.sh b/src/commands/dotfiles/rofi-setup.sh index 16fc84c6..d3c6b728 100755 --- a/src/commands/dotfiles/rofi-setup.sh +++ b/src/commands/dotfiles/rofi-setup.sh @@ -1,63 +1,5 @@ #!/bin/sh -e -RC='\033[0m' -RED='\033[31m' -YELLOW='\033[33m' -GREEN='\033[32m' - -command_exists() { - which "$1" >/dev/null 2>&1 -} - -checkEnv() { - ## Check for requirements. - REQUIREMENTS='curl groups sudo' - for req in $REQUIREMENTS; do - if ! command_exists "$req"; then - echo -e "${RED}To run me, you need: ${REQUIREMENTS}${RC}" - exit 1 - fi - done - - ## Check Package Handler - PACKAGEMANAGER='apt-get dnf pacman zypper' - for pgm in $PACKAGEMANAGER; do - if command_exists "$pgm"; then - PACKAGER="$pgm" - echo "Using $pgm" - break - fi - done - - if [ -z "$PACKAGER" ]; then - echo -e "${RED}Can't find a supported package manager${RC}" - exit 1 - fi - - ## Check SuperUser Group - SUPERUSERGROUP='wheel sudo root' - for sug in $SUPERUSERGROUP; do - if groups | grep -q "$sug"; then - SUGROUP="$sug" - echo "Super user group $SUGROUP" - break - fi - done - - ## Check if member of the sudo group. - if ! groups | grep -q "$SUGROUP"; then - echo -e "${RED}You need to be a member of the sudo group to run me!${RC}\n" - exit 1 - fi - - DTYPE="unknown" # Default to unknown - # Use /etc/os-release for modern distro identification - if [ -f /etc/os-release ]; then - . /etc/os-release - DTYPE="$ID" - fi -} - setupRofi() { echo "Install Rofi if not already installed..." if ! command_exists rofi; then diff --git a/src/commands/system-setup/1-compile-setup.sh b/src/commands/system-setup/1-compile-setup.sh index 0c0df4f7..98b69b44 100755 --- a/src/commands/system-setup/1-compile-setup.sh +++ b/src/commands/system-setup/1-compile-setup.sh @@ -1,10 +1,5 @@ #!/bin/sh -e -RC='\033[0m' -RED='\033[31m' -YELLOW='\033[33m' -GREEN='\033[32m' - # Check if the home directory and linuxtoolbox folder exist, create them if they don't LINUXTOOLBOXDIR="$HOME/linuxtoolbox" @@ -27,59 +22,6 @@ fi cd "$LINUXTOOLBOXDIR/linux-setup" || exit -command_exists() { - command -v "$1" >/dev/null 2>&1 -} - -checkEnv() { - ## Check for requirements. - REQUIREMENTS='curl groups sudo' - for req in $REQUIREMENTS; do - if ! command_exists "$req"; then - echo -e "${RED}To run me, you need: $REQUIREMENTS${RC}" - exit 1 - fi - done - - ## Check Package Manager - PACKAGEMANAGER='apt yum dnf pacman zypper' - for pgm in $PACKAGEMANAGER; do - if command_exists "$pgm"; then - PACKAGER="$pgm" - echo "Using $pgm" - break - fi - done - - if [ -z "$PACKAGER" ]; then - echo -e "${RED}Can't find a supported package manager${RC}" - exit 1 - fi - - ## Check if the current directory is writable. - GITPATH="$(dirname "$(realpath "$0")")" - if [ ! -w "$GITPATH" ]; then - echo -e "${RED}Can't write to $GITPATH${RC}" - exit 1 - fi - - ## Check SuperUser Group - SUPERUSERGROUP='wheel sudo root' - for sug in $SUPERUSERGROUP; do - if groups | grep -q "$sug"; then - SUGROUP="$sug" - echo "Super user group $SUGROUP" - break - fi - done - - ## Check if member of the sudo group. - if ! groups | grep -q "$SUGROUP"; then - echo -e "${RED}You need to be a member of the sudo group to run me!${RC}" - exit 1 - fi -} - installDepend() { ## Check for dependencies. DEPENDENCIES='tar tree multitail tldr trash-cli unzip cmake make jq' diff --git a/src/commands/system-setup/2-gaming-setup.sh b/src/commands/system-setup/2-gaming-setup.sh index c9ed0368..d61e5ecb 100755 --- a/src/commands/system-setup/2-gaming-setup.sh +++ b/src/commands/system-setup/2-gaming-setup.sh @@ -1,60 +1,5 @@ #!/bin/sh -e -RC='\e[0m' -RED='\e[31m' -YELLOW='\e[33m' -GREEN='\e[32m' - -command_exists() { - command -v $1 >/dev/null 2>&1 -} - -checkEnv() { - ## Check for requirements. - REQUIREMENTS='curl groups sudo' - if ! command_exists ${REQUIREMENTS}; then - echo -e "${RED}To run me, you need: ${REQUIREMENTS}${RC}" - exit 1 - fi - - ## Check Package Handeler - PACKAGEMANAGER='apt-get yum dnf pacman zypper' - for pgm in ${PACKAGEMANAGER}; do - if command_exists ${pgm}; then - PACKAGER=${pgm} - echo "Using ${pgm}" - fi - done - - if [ -z "${PACKAGER}" ]; then - echo -e "${RED}Can't find a supported package manager" - exit 1 - fi - - ## Check if the current directory is writable. - GITPATH="$(dirname "$(readlink -f "$0")")" - if [ ! -w ${GITPATH} ]; then - echo -e "${RED}Can't write to ${GITPATH}${RC}" - exit 1 - fi - - ## Check SuperUser Group - SUPERUSERGROUP='wheel sudo root' - for sug in ${SUPERUSERGROUP}; do - if groups | grep ${sug}; then - SUGROUP=${sug} - echo "Super user group ${SUGROUP}" - fi - done - - ## Check if member of the sudo group. - if ! groups | grep ${SUGROUP} >/dev/null; then - echo -e "${RED}You need to be a member of the sudo group to run me!" - exit 1 - fi - -} - installDepend() { ## Check for dependencies. echo -e "${YELLOW}Installing dependencies...${RC}" diff --git a/src/commands/system-update.sh b/src/commands/system-update.sh index 6faaf62a..577e5d0f 100755 --- a/src/commands/system-update.sh +++ b/src/commands/system-update.sh @@ -1,62 +1,5 @@ #!/bin/sh -e -RC='\033[0m' -RED='\033[31m' -YELLOW='\033[33m' -GREEN='\033[32m' - -command_exists() { - which $1 >/dev/null 2>&1 -} - -checkEnv() { - ## Check for requirements. - REQUIREMENTS='curl groups sudo' - for req in ${REQUIREMENTS}; do - if ! command_exists ${req}; then - echo -e "${RED}To run me, you need: ${REQUIREMENTS}${RC}" - exit 1 - fi - done - ## Check Package Handler - PACKAGEMANAGER='apt-get nala dnf pacman zypper yum xbps-install' - for pgm in ${PACKAGEMANAGER}; do - if command_exists ${pgm}; then - PACKAGER=${pgm} - echo "Using ${pgm}" - break - fi - done - - if [ -z "${PACKAGER}" ]; then - echo -e "${RED}Can't find a supported package manager${RC}" - exit 1 - fi - - ## Check SuperUser Group - SUPERUSERGROUP='wheel sudo root' - for sug in ${SUPERUSERGROUP}; do - if groups | grep ${sug} >/dev/null; then - SUGROUP=${sug} - echo "Super user group ${SUGROUP}" - break - fi - done - - ## Check if member of the sudo group. - if ! groups | grep ${SUGROUP} >/dev/null; then - echo -e "${RED}You need to be a member of the sudo group to run me!${RC}" - exit 1 - fi - - DTYPE="unknown" # Default to unknown - # Use /etc/os-release for modern distro identification - if [ -f /etc/os-release ]; then - . /etc/os-release - DTYPE=$ID - fi -} - fastUpdate() { case ${PACKAGER} in pacman) diff --git a/src/list.rs b/src/list.rs index 97aa36c6..15287d07 100644 --- a/src/list.rs +++ b/src/list.rs @@ -11,6 +11,15 @@ use ratatui::{ Frame, }; +macro_rules! with_common_script { + ($command:expr) => { + concat!( + include_str!("commands/common-script.sh"), + include_str!($command) + ) + }; +} + struct ListNode { name: &'static str, command: &'static str, @@ -57,7 +66,7 @@ impl CustomList { } => { ListNode { name: "Full System Update", - command: include_str!("commands/system-update.sh"), + command: with_common_script!("commands/system-update.sh"), }, ListNode { name: "Setup Bash Prompt", @@ -77,11 +86,11 @@ impl CustomList { } => { ListNode { name: "Build Prerequisites", - command: include_str!("commands/system-setup/1-compile-setup.sh"), + command: with_common_script!("commands/system-setup/1-compile-setup.sh"), }, ListNode { name: "Gaming Dependencies", - command: include_str!("commands/system-setup/2-gaming-setup.sh"), + command: with_common_script!("commands/system-setup/2-gaming-setup.sh"), }, ListNode { name: "Recursion?", @@ -94,15 +103,15 @@ impl CustomList { } => { ListNode { name: "Alacritty Setup", - command: include_str!("commands/dotfiles/alacritty-setup.sh"), + command: with_common_script!("commands/dotfiles/alacritty-setup.sh"), }, ListNode { name: "Kitty Setup", - command: include_str!("commands/dotfiles/kitty-setup.sh"), + command: with_common_script!("commands/dotfiles/kitty-setup.sh"), }, ListNode { name: "Rofi Setup", - command: include_str!("commands/dotfiles/rofi-setup.sh"), + command: with_common_script!("commands/dotfiles/rofi-setup.sh"), }, } }); From d8600e8d64cf8d37d0a6922e9175e2f21aaeb304 Mon Sep 17 00:00:00 2001 From: afonso Date: Mon, 15 Jul 2024 22:26:03 +0100 Subject: [PATCH 2/2] refactor: allow scripts to control checkEnv search parameters --- src/commands/common-script.sh | 47 +++++++++++++++----- src/commands/dotfiles/alacritty-setup.sh | 9 +++- src/commands/dotfiles/kitty-setup.sh | 21 ++++++--- src/commands/dotfiles/rofi-setup.sh | 9 +++- src/commands/system-setup/1-compile-setup.sh | 19 +++++--- src/commands/system-setup/2-gaming-setup.sh | 9 +++- src/commands/system-update.sh | 17 ++++--- 7 files changed, 98 insertions(+), 33 deletions(-) diff --git a/src/commands/common-script.sh b/src/commands/common-script.sh index 30353cc0..a97a284f 100644 --- a/src/commands/common-script.sh +++ b/src/commands/common-script.sh @@ -8,23 +8,26 @@ YELLOW='\033[33m' GREEN='\033[32m' command_exists() { - which $1 >/dev/null 2>&1 + which "$1" >/dev/null 2>&1 } -checkEnv() { + +checkCommandRequirements() { ## Check for requirements. - REQUIREMENTS='curl groups sudo' + REQUIREMENTS=$1 for req in ${REQUIREMENTS}; do - if ! command_exists ${req}; then - echo -e "${RED}To run me, you need: ${REQUIREMENTS}${RC}" + if ! command_exists "${req}"; then + echo "${RED}To run me, you need: ${REQUIREMENTS}${RC}" exit 1 fi done +} - ## Check Package Handler - PACKAGEMANAGER='apt-get dnf pacman zypper' +checkPackageManager() { + ## Check Package Manager + PACKAGEMANAGER=$1 for pgm in ${PACKAGEMANAGER}; do - if command_exists ${pgm}; then + if command_exists "${pgm}"; then PACKAGER=${pgm} echo "Using ${pgm}" break @@ -35,11 +38,13 @@ checkEnv() { echo -e "${RED}Can't find a supported package manager${RC}" exit 1 fi +} +checkSuperUser() { ## Check SuperUser Group SUPERUSERGROUP='wheel sudo root' for sug in ${SUPERUSERGROUP}; do - if groups | grep -q ${sug}; then + if groups | grep -q "${sug}"; then SUGROUP=${sug} echo "Super user group ${SUGROUP}" break @@ -47,15 +52,33 @@ checkEnv() { done ## Check if member of the sudo group. - if ! groups | grep -q ${SUGROUP}; then - echo -e "${RED}You need to be a member of the sudo group to run me!${RC}" + if ! groups | grep -q "${SUGROUP}"; then + echo "${RED}You need to be a member of the sudo group to run me!${RC}" exit 1 fi +} +checkCurrentDirectoryWritable() { + ## Check if the current directory is writable. + GITPATH="$(dirname "$(realpath "$0")")" + if [ ! -w "$GITPATH" ]; then + echo "${RED}Can't write to $GITPATH${RC}" + exit 1 + fi +} + +checkDistro() { DTYPE="unknown" # Default to unknown # Use /etc/os-release for modern distro identification if [ -f /etc/os-release ]; then . /etc/os-release DTYPE=$ID fi -} \ No newline at end of file +} + +checkEnv() { + checkCommandRequirements 'curl groups sudo' + checkPackageHandler 'apt-get dnf pacman zypper' + checkSuperUser + checkDistro +} diff --git a/src/commands/dotfiles/alacritty-setup.sh b/src/commands/dotfiles/alacritty-setup.sh index 4ef110f6..2e2156d4 100755 --- a/src/commands/dotfiles/alacritty-setup.sh +++ b/src/commands/dotfiles/alacritty-setup.sh @@ -1,5 +1,12 @@ #!/bin/sh -e +checkEnv() { + checkCommandRequirements 'curl groups sudo' + checkPackageManager 'apt-get dnf pacman zypper' + checkSuperUser + checkDistro +} + setupAlacritty() { echo "Install Alacritty if not already installed..." if ! command_exists alacritty; then @@ -24,4 +31,4 @@ setupAlacritty() { } checkEnv -setupAlacritty \ No newline at end of file +setupAlacritty diff --git a/src/commands/dotfiles/kitty-setup.sh b/src/commands/dotfiles/kitty-setup.sh index 60c9efb9..131d1f9a 100755 --- a/src/commands/dotfiles/kitty-setup.sh +++ b/src/commands/dotfiles/kitty-setup.sh @@ -1,14 +1,21 @@ #!/bin/sh -e +checkEnv() { + checkCommandRequirements 'curl groups sudo' + checkPackageManager 'apt-get dnf pacman zypper' + checkSuperUser + checkDistro +} + setupKitty() { echo "Install Kitty if not already installed..." if ! command_exists kitty; then case ${PACKAGER} in pacman) - sudo ${PACKAGER} -S --noconfirm kitty + sudo "${PACKAGER}" -S --noconfirm kitty ;; *) - sudo ${PACKAGER} install -y kitty + sudo "${PACKAGER}" install -y kitty ;; esac else @@ -16,12 +23,12 @@ setupKitty() { fi echo "Copy Kitty config files" if [ -d "${HOME}/.config/kitty" ]; then - cp -r ${HOME}/.config/kitty ${HOME}/.config/kitty-bak + cp -r "${HOME}"/.config/kitty "${HOME}"/.config/kitty-bak fi - mkdir -p ${HOME}/.config/kitty/ - wget -O ${HOME}/.config/kitty/kitty.conf https://github.com/ChrisTitusTech/dwm-titus/raw/main/config/kitty/kitty.conf - wget -O ${HOME}/.config/kitty/nord.conf https://github.com/ChrisTitusTech/dwm-titus/raw/main/config/kitty/nord.conf + mkdir -p "${HOME}"/.config/kitty/ + wget -O "${HOME}"/.config/kitty/kitty.conf https://github.com/ChrisTitusTech/dwm-titus/raw/main/config/kitty/kitty.conf + wget -O "${HOME}"/.config/kitty/nord.conf https://github.com/ChrisTitusTech/dwm-titus/raw/main/config/kitty/nord.conf } checkEnv -setupKitty \ No newline at end of file +setupKitty diff --git a/src/commands/dotfiles/rofi-setup.sh b/src/commands/dotfiles/rofi-setup.sh index d3c6b728..aab942ed 100755 --- a/src/commands/dotfiles/rofi-setup.sh +++ b/src/commands/dotfiles/rofi-setup.sh @@ -1,5 +1,12 @@ #!/bin/sh -e +checkEnv() { + checkCommandRequirements 'curl groups sudo' + checkPackageManager 'apt-get dnf pacman zypper' + checkSuperUser + checkDistro +} + setupRofi() { echo "Install Rofi if not already installed..." if ! command_exists rofi; then @@ -29,4 +36,4 @@ setupRofi() { } checkEnv -setupRofi \ No newline at end of file +setupRofi diff --git a/src/commands/system-setup/1-compile-setup.sh b/src/commands/system-setup/1-compile-setup.sh index 98b69b44..e34e68a0 100755 --- a/src/commands/system-setup/1-compile-setup.sh +++ b/src/commands/system-setup/1-compile-setup.sh @@ -22,6 +22,13 @@ fi cd "$LINUXTOOLBOXDIR/linux-setup" || exit +checkEnv() { + checkCommandRequirements 'curl groups sudo' + checkPackageHandler 'apt yum dnf pacman zypper' + checkCurrentDirectoryWritable + checkSuperUser +} + installDepend() { ## Check for dependencies. DEPENDENCIES='tar tree multitail tldr trash-cli unzip cmake make jq' @@ -51,30 +58,30 @@ installDepend() { echo "No AUR helper found. Please install yay or paru." exit 1 fi - "$AUR_HELPER" --noconfirm -S $DEPENDENCIES + "$AUR_HELPER" --noconfirm -S "$DEPENDENCIES" ;; apt) COMPILEDEPS='build-essential' sudo "$PACKAGER" update sudo dpkg --add-architecture i386 sudo "$PACKAGER" update - sudo "$PACKAGER" install -y $DEPENDENCIES $COMPILEDEPS + sudo "$PACKAGER" install -y "$DEPENDENCIES" $COMPILEDEPS ;; dnf) COMPILEDEPS='@development-tools' sudo "$PACKAGER" update sudo "$PACKAGER" config-manager --set-enabled powertools - sudo "$PACKAGER" install -y $DEPENDENCIES $COMPILEDEPS + sudo "$PACKAGER" install -y "$DEPENDENCIES" $COMPILEDEPS sudo "$PACKAGER" install -y glibc-devel.i686 libgcc.i686 ;; zypper) COMPILEDEPS='patterns-devel-base-devel_basis' sudo "$PACKAGER" refresh - sudo "$PACKAGER" --non-interactive install $DEPENDENCIES $COMPILEDEPS + sudo "$PACKAGER" --non-interactive install "$DEPENDENCIES" $COMPILEDEPS sudo "$PACKAGER" --non-interactive install libgcc_s1-gcc7-32bit glibc-devel-32bit ;; *) - sudo "$PACKAGER" install -y $DEPENDENCIES + sudo "$PACKAGER" install -y "$DEPENDENCIES" ;; esac } @@ -101,4 +108,4 @@ install_additional_dependencies() { checkEnv installDepend -install_additional_dependencies \ No newline at end of file +install_additional_dependencies diff --git a/src/commands/system-setup/2-gaming-setup.sh b/src/commands/system-setup/2-gaming-setup.sh index d61e5ecb..f044162c 100755 --- a/src/commands/system-setup/2-gaming-setup.sh +++ b/src/commands/system-setup/2-gaming-setup.sh @@ -1,5 +1,12 @@ #!/bin/sh -e +checkEnv() { + checkCommandRequirements 'curl groups sudo' + checkPackageManager 'apt-get yum dnf pacman zypper' + checkCurrentDirectoryWritable + checkSuperUser +} + installDepend() { ## Check for dependencies. echo -e "${YELLOW}Installing dependencies...${RC}" @@ -83,4 +90,4 @@ install_additional_dependencies() { checkEnv installDepend -install_additional_dependencies \ No newline at end of file +install_additional_dependencies diff --git a/src/commands/system-update.sh b/src/commands/system-update.sh index 577e5d0f..132e617d 100755 --- a/src/commands/system-update.sh +++ b/src/commands/system-update.sh @@ -1,5 +1,12 @@ #!/bin/sh -e +checkEnv() { + checkCommandRequirements 'curl groups sudo' + checkPackageManager 'apt-get nala dnf pacman zypper yum xbps-install' + checkSuperUser + checkDistro +} + fastUpdate() { case ${PACKAGER} in pacman) @@ -68,15 +75,15 @@ updateSystem() { echo -e "${GREEN}Updating system${RC}" case ${PACKAGER} in nala|apt-get) - sudo ${PACKAGER} update -y - sudo ${PACKAGER} upgrade -y + sudo "${PACKAGER}" update -y + sudo "${PACKAGER}" upgrade -y ;; yum|dnf) - sudo ${PACKAGER} update -y - sudo ${PACKAGER} upgrade -y + sudo "${PACKAGER}" update -y + sudo "${PACKAGER}" upgrade -y ;; pacman) - sudo ${PACKAGER} -Syu --noconfirm + sudo "${PACKAGER}" -Syu --noconfirm ;; zypper) sudo ${PACKAGER} ref