Improve virtmon

This commit is contained in:
clsty
2025-11-12 18:55:33 +08:00
parent 9162c24ccd
commit 56c07a514f
4 changed files with 78 additions and 70 deletions
+57
View File
@@ -344,3 +344,60 @@ function backup_clashing_targets(){
x mkdir -p $backup_dir
x rsync -av --progress "${args_includes[@]}" "$target_dir/" "$backup_dir/"
}
function install_cmds(){
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
v sudo pacman -Syu
v 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
v sudo apt update -y
v 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
v 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
v sudo zypper refresh
v 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 ensure_cmds(){
local not_found_cmds=()
for cmd in "$@"; do
if ! command -v $cmd >/dev/null 2>&1;then
not_found_cmds+=($cmd)
fi
done
if [[ ${#not_found_cmds[@]} -gt 0 ]]; then
echo -e "${STY_YELLOW}[$0]: Not found: ${not_found_cmds[*]}.${STY_RST}"
install_cmds "${not_found_cmds[@]}"
fi
}