From 7fb5c35af14b90fd00fd1206a0347adcd0be3735 Mon Sep 17 00:00:00 2001 From: zenobit Date: Wed, 12 Apr 2023 01:18:19 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix(dh):=20refactor=20dependenci?= =?UTF-8?q?es=5Finstall=20function=20=E2=9C=A8=20feat(dh):=20add=20support?= =?UTF-8?q?=20for=20multiple=20package=20managers=20The=20dependencies=5Fi?= =?UTF-8?q?nstall=20function=20has=20been=20refactored=20to=20use=20separa?= =?UTF-8?q?te=20functions=20for=20each=20package=20manager.=20This=20makes?= =?UTF-8?q?=20it=20easier=20to=20add=20support=20for=20new=20package=20man?= =?UTF-8?q?agers=20in=20the=20future.=20Support=20for=20apt,=20pacman,=20x?= =?UTF-8?q?bps,=20and=20dnf=20has=20been=20added.=20This=20improves=20the?= =?UTF-8?q?=20flexibility=20of=20the=20script=20as=20it=20can=20now=20be?= =?UTF-8?q?=20used=20on=20a=20wider=20range=20of=20systems.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dh | 47 ++++++++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/dh b/dh index de76c18..e648280 100755 --- a/dh +++ b/dh @@ -194,24 +194,14 @@ EOF function dependencies_install() { # Find the current distribution and install dependecies if [ -f /etc/os-release ]; then - if grep -q arch /etc/os-release; then - sudo pacman -S cdrtools coreutils edk2-ovmf grep jq procps python3 qemu-full sed socat spice-gtk swtpm usbutils util-linux wget xdg-user-dirs xorg-xrandr zsync getext yad fzf - elif [[ -f /etc/debian_version ]]; then - sudo apt install qemu bash coreutils ovmf grep jq lsb procps python3 genisoimage usbutils util-linux sed spice-client-gtk swtpm wget xdg-user-dirs zsync unzip yad fzf - elif grep -q void /etc/os-release; then - sudo xbps-install -S qemu bash coreutils grep jq procps-ng python3 util-linux sed spice-gtk swtpm usbutils wget xdg-user-dirs xrandr unzip zsync socat yad fzf - elif grep -q fedora /etc/os-release; then - sudo dnf install qemu bash coreutils edk2-tools grep jq lsb procps python3 genisoimage usbutils util-linux sed spice-gtk-tools swtpm wget xdg-user-dirs xrandr unzip yad fzf - elif grep -q nix /etc/os-release; then - echo "#TODO" - elif grep -q openSUSE /etc/os-release; then - # openSUSE supports dnf, but the default is zypper - if hash dnf 2>/dev/null; then - sudo dnf install qemu bash coreutils edk2-tools grep jq lsb procps python3 genisoimage usbutils util-linux sed spice-gtk-tools swtpm wget xdg-user-dirs xrandr unzip yad fzf - else - echo "$MSG_ERROR: $MSG_NO_DISTRO" - exit 1 - fi + if [ -f "$PATH_PREFIX/pacman" ]; then + install_needed_pacman + elif [ -f "$PATH_PREFIX/apt" ]; then + install_needed_apt + elif [ -f "$PATH_PREFIX/xbps-install" ]; then + install_needed_xbps + elif [ -f "$PATH_PREFIX/dnf" ]; then + install_needed_dnf else echo "$MSG_ERROR: $MSG_NO_DISTRO" exit 1 @@ -219,6 +209,22 @@ EOF fi } + function install_needed_atp() { + sudo apt install qemu bash coreutils ovmf grep jq lsb procps python3 genisoimage usbutils util-linux sed spice-client-gtk swtpm wget xdg-user-dirs zsync unzip yad fzf + } + + function install_needed_pacman() { + sudo pacman -S cdrtools coreutils edk2-ovmf grep jq procps python3 qemu-full sed socat spice-gtk swtpm usbutils util-linux wget xdg-user-dirs xorg-xrandr zsync getext yad fzf + } + + function install_needed_xbps() { + sudo xbps-install -S qemu bash coreutils grep jq procps-ng python3 util-linux sed spice-gtk swtpm usbutils wget xdg-user-dirs xrandr unzip zsync socat yad fzf + } + + function install_needed_dnf() { + sudo dnf install qemu bash coreutils edk2-tools grep jq lsb procps python3 genisoimage usbutils util-linux sed spice-gtk-tools swtpm wget xdg-user-dirs xrandr unzip yad fzf + } + function distrohopper_install() { cp dh quickget quickemu macrecovery windowskey "$PATH_PREFIX" >/dev/null 2>&1 || sudo cp dh quickget quickemu macrecovery windowskey "$PATH_PREFIX" # quickget also to config directory for adding new distros... @@ -234,13 +240,12 @@ EOF function installation_process() { dependencies_check_tui dependencies_check_gui - #check_quickemu_dependencies + echo "$MSG_NEEDED" + dependencies_install echo "$MSG_STRUCTURE" \ && directory_structure_create \ && echo "$MSG_SETTINGUP" \ && virtual_machines_directory_choose \ - && echo "$MSG_NEEDED" \ - && dependencies_install \ && echo "$MSG_INSTALLING" \ && distrohopper_install \ && echo "$MSG_C_ENTRY" \