diff --git a/sdata/dist-nix/install-deps.sh b/sdata/dist-nix/install-deps.sh index cda6f38f4..ac13d194f 100644 --- a/sdata/dist-nix/install-deps.sh +++ b/sdata/dist-nix/install-deps.sh @@ -9,38 +9,49 @@ function vianix-warning(){ pause } function install_cmds(){ - if [[ "$OS_DISTRO_ID" == "arch" || "$OS_DISTRO_ID_LIKE" == "arch" || "$OS_DISTRO_ID" == "cachyos" ]]; then - local pkgs=() - for cmd in "$@";do - # For package name which is not cmd name, use "case" syntax to replace - pkgs+=($cmd) - done - x sudo pacman -Syu - x sudo pacman -S --noconfirm --needed "${pkgs[@]}" - elif [[ "$OS_DISTRO_ID" == "debian" || "$OS_DISTRO_ID_LIKE" == "debian" ]]; then - local pkgs=() - for cmd in "$@";do - # For package name which is not cmd name, use "case" syntax to replace - pkgs+=($cmd) - done - x sudo apt update -y - x sudo apt install -y "${pkgs[@]}" - elif [[ "$OS_DISTRO_ID" == "fedora" || "$OS_DISTRO_ID_LIKE" == "fedora" ]]; then - local pkgs=() - for cmd in "$@";do - # For package name which is not cmd name, use "case" syntax to replace - pkgs+=($cmd) - done - x sudo dnf install -y "${pkgs[@]}" - elif [[ "$OS_DISTRO_ID" =~ ^(opensuse-leap|opensuse-tumbleweed)$ ]] || [[ "$OS_DISTRO_ID_LIKE" =~ ^(opensuse|suse)(\ (opensuse|suse))?$ ]]; then - local pkgs=() - for cmd in "$@";do - # For package name which is not cmd name, use "case" syntax to replace - pkgs+=($cmd) - done - x sudo zypper refresh - x sudo zypper -n install "${pkgs[@]}" - fi + case $OS_GROUP_ID in + "arch") + local pkgs=() + for cmd in "$@";do + # For package name which is not cmd name, use "case" syntax to replace + pkgs+=($cmd) + done + x sudo pacman -Syu + x sudo pacman -S --noconfirm --needed "${pkgs[@]}" + ;; + "debian") + local pkgs=() + for cmd in "$@";do + # For package name which is not cmd name, use "case" syntax to replace + pkgs+=($cmd) + done + x sudo apt update -y + x sudo apt install -y "${pkgs[@]}" + ;; + "fedora") + local pkgs=() + for cmd in "$@";do + # For package name which is not cmd name, use "case" syntax to replace + pkgs+=($cmd) + done + x sudo dnf install -y "${pkgs[@]}" + ;; + "suse") + local pkgs=() + for cmd in "$@";do + # For package name which is not cmd name, use "case" syntax to replace + pkgs+=($cmd) + done + x sudo zypper refresh + x sudo zypper -n install "${pkgs[@]}" + ;; + *) + printf "WARNING\n" + printf "No method found to install package providing the commands:\n" + printf " $@\n" + printf "Please install by yourself.\n" + ;; + esac } function install_nix(){ # https://github.com/NixOS/experimental-nix-installer diff --git a/sdata/lib/dist-determine.sh b/sdata/lib/dist-determine.sh index aa76b5dcd..3cb7e2d34 100644 --- a/sdata/lib/dist-determine.sh +++ b/sdata/lib/dist-determine.sh @@ -31,15 +31,7 @@ function print_os_group_id_unofficial(){ printf "============\n\n" printf "${STY_RST}" } -function print_os_group_id_fallback(){ - printf "${STY_RED}" - printf "===CAUTION===\n" - printf "No support provided for your distro, using fallback method.\n" - printf "Proceed only at your own risk.\n" - printf "=============\n\n" - printf "${STY_RST}" -} -function print_os_group_id_force_vianix(){ +function print_os_group_id_unsupported(){ printf "${STY_RED}" printf "===CAUTION===\n" printf "\"--via-nix\" is forcely specified as the only method to support your distro.\n" @@ -48,6 +40,14 @@ function print_os_group_id_force_vianix(){ printf "Proceed only at your own risk.\n" printf "=============\n\n" printf "${STY_RST}" + sleep 3 +} +function print_os_group_id_fallback(){ + printf "${STY_RED}" + printf "===CAUTION===\n" + printf "Distro not recognized, determined as fallback.\n" + printf "=============\n\n" + printf "${STY_RST}" } function print_os_group_id_architecture(){ printf "${STY_RED}" @@ -99,10 +99,18 @@ elif [[ "$OS_DISTRO_ID" == "fedora" ]]; then elif [[ "$OS_DISTRO_ID_LIKE" == "fedora" ]]; then OS_GROUP_ID="fedora" print_os_group_id_functions=(print_os_group_id{,_alike,_unofficial}) +elif [[ "$OS_DISTRO_ID" =~ ^(opensuse-leap|opensuse-tumbleweed)$ ]] || [[ "$OS_DISTRO_ID_LIKE" =~ ^(opensuse|suse)(\ (opensuse|suse))?$ ]]; then + OS_GROUP_ID="suse" + INSTALL_VIA_NIX=true + print_os_group_id_functions=(print_os_group_id{,_unsupported}) +elif [[ "$OS_DISTRO_ID" == "debian" || "$OS_DISTRO_ID_LIKE" == "debian" ]]; then + OS_GROUP_ID="debian" + INSTALL_VIA_NIX=true + print_os_group_id_functions=(print_os_group_id{,_unsupported}) else OS_GROUP_ID="fallback" INSTALL_VIA_NIX=true - print_os_group_id_functions=(print_os_group_id{,_fallback,_force_vianix}) + print_os_group_id_functions=(print_os_group_id{,_fallback,_unsupported}) fi ####################