mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2025-07-01 21:56:52 +00:00
Update customizable_post_install.sh
This commit is contained in:
parent
38d44deef6
commit
131da2ec60
@ -671,9 +671,198 @@ configure_time_sync() {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
install_system_utils() {
|
install_system_utils() {
|
||||||
|
|
||||||
|
command_exists() {
|
||||||
|
command -v "$1" >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
install_single_package() {
|
||||||
|
local package="$1"
|
||||||
|
local command_name="${2:-$package}"
|
||||||
|
local description="$3"
|
||||||
|
|
||||||
|
msg_info "$(translate "Installing") $package ($description)..."
|
||||||
|
|
||||||
|
|
||||||
|
local install_success=false
|
||||||
|
|
||||||
|
if command_exists apt; then
|
||||||
|
|
||||||
|
if apt update >/dev/null 2>&1 && apt install -y "$package" >/dev/null 2>&1; then
|
||||||
|
install_success=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif command_exists yum; then
|
||||||
|
if yum install -y "$package" >/dev/null 2>&1; then
|
||||||
|
install_success=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif command_exists dnf; then
|
||||||
|
if dnf install -y "$package" >/dev/null 2>&1; then
|
||||||
|
install_success=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif command_exists pacman; then
|
||||||
|
if pacman -S --noconfirm "$package" >/dev/null 2>&1; then
|
||||||
|
install_success=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif command_exists zypper; then
|
||||||
|
if zypper install -y "$package" >/dev/null 2>&1; then
|
||||||
|
install_success=true
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
cleanup
|
||||||
|
msg_error "$(translate "No compatible package manager detected")"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cleanup
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$install_success" = true ]; then
|
||||||
|
|
||||||
|
hash -r 2>/dev/null
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
if command_exists "$command_name"; then
|
||||||
|
msg_ok "$package $(translate "installed correctly and available")"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
msg_warn "$package $(translate "installed but command not immediately available")"
|
||||||
|
msg_info2 "$(translate "May need to restart terminal")"
|
||||||
|
return 2
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
msg_error "$(translate "Error installing") $package"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
show_utilities_selection() {
|
||||||
|
local utilities=(
|
||||||
|
"axel" "$(translate "Download accelerator")" "OFF"
|
||||||
|
"dos2unix" "$(translate "Convert DOS/Unix text files")" "OFF"
|
||||||
|
"grc" "$(translate "Generic log/command colorizer")" "OFF"
|
||||||
|
"htop" "$(translate "Interactive process viewer")" "OFF"
|
||||||
|
"btop" "$(translate "Modern resource monitor")" "OFF"
|
||||||
|
"iftop" "$(translate "Real-time network usage")" "OFF"
|
||||||
|
"iotop" "$(translate "Monitor disk I/O usage")" "OFF"
|
||||||
|
"iperf3" "$(translate "Network performance testing")" "OFF"
|
||||||
|
"ipset" "$(translate "Manage IP sets")" "OFF"
|
||||||
|
"iptraf-ng" "$(translate "Network monitoring tool")" "OFF"
|
||||||
|
"mlocate" "$(translate "Locate files quickly")" "OFF"
|
||||||
|
"msr-tools" "$(translate "Access CPU MSRs")" "OFF"
|
||||||
|
"net-tools" "$(translate "Legacy networking tools")" "OFF"
|
||||||
|
"sshpass" "$(translate "Non-interactive SSH login")" "OFF"
|
||||||
|
"tmux" "$(translate "Terminal multiplexer")" "OFF"
|
||||||
|
"unzip" "$(translate "Extract ZIP files")" "OFF"
|
||||||
|
"zip" "$(translate "Create ZIP files")" "OFF"
|
||||||
|
"libguestfs-tools" "$(translate "VM disk utilities")" "OFF"
|
||||||
|
"aria2" "$(translate "Multi-source downloader")" "OFF"
|
||||||
|
"cabextract" "$(translate "Extract CAB files")" "OFF"
|
||||||
|
"wimtools" "$(translate "Manage WIM images")" "OFF"
|
||||||
|
"genisoimage" "$(translate "Create ISO images")" "OFF"
|
||||||
|
"chntpw" "$(translate "Edit Windows registry/passwords")" "OFF"
|
||||||
|
)
|
||||||
|
|
||||||
|
local selected
|
||||||
|
selected=$(dialog --clear --backtitle "ProxMenu - $(translate "System Utilities")" \
|
||||||
|
--title "$(translate "Select utilities to install")" \
|
||||||
|
--checklist "$(translate "Use SPACE to select/deselect, ENTER to confirm")" \
|
||||||
|
20 70 12 "${utilities[@]}" 2>&1 >/dev/tty)
|
||||||
|
|
||||||
|
echo "$selected"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
install_selected_utilities() {
|
||||||
|
local selected="$1"
|
||||||
|
|
||||||
|
if [ -z "$selected" ]; then
|
||||||
|
dialog --clear --backtitle "ProxMenu" \
|
||||||
|
--title "$(translate "No Selection")" \
|
||||||
|
--msgbox "$(translate "No utilities were selected")" 8 40
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
msg_info2 "$(translate "Installing selected utilities")"
|
||||||
|
|
||||||
|
local failed=0
|
||||||
|
local success=0
|
||||||
|
local warning=0
|
||||||
|
|
||||||
|
|
||||||
|
local selected_array
|
||||||
|
IFS=' ' read -ra selected_array <<< "$selected"
|
||||||
|
|
||||||
|
|
||||||
|
declare -A package_to_command=(
|
||||||
|
["mlocate"]="locate"
|
||||||
|
["msr-tools"]="rdmsr"
|
||||||
|
["net-tools"]="netstat"
|
||||||
|
["libguestfs-tools"]="virt-filesystems"
|
||||||
|
["aria2"]="aria2c"
|
||||||
|
["wimtools"]="wimlib-imagex"
|
||||||
|
)
|
||||||
|
|
||||||
|
for util in "${selected_array[@]}"; do
|
||||||
|
|
||||||
|
util=$(echo "$util" | tr -d '"')
|
||||||
|
|
||||||
|
|
||||||
|
local verify_command="${package_to_command[$util]:-$util}"
|
||||||
|
|
||||||
|
|
||||||
|
install_single_package "$util" "$verify_command" "$util"
|
||||||
|
local install_result=$?
|
||||||
|
|
||||||
|
case $install_result in
|
||||||
|
0)
|
||||||
|
success=$((success + 1))
|
||||||
|
;;
|
||||||
|
1)
|
||||||
|
failed=$((failed + 1))
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
warning=$((warning + 1))
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
if [ -f ~/.bashrc ]; then
|
||||||
|
source ~/.bashrc >/dev/null 2>&1
|
||||||
|
fi
|
||||||
|
hash -r 2>/dev/null
|
||||||
|
|
||||||
|
echo
|
||||||
|
msg_info2 "$(translate "Installation summary"):"
|
||||||
|
msg_ok "$(translate "Successful"): $success"
|
||||||
|
msg_success "$(translate "Common system utilities installation completed")"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
local selected_utilities
|
||||||
|
selected_utilities=$(show_utilities_selection)
|
||||||
|
|
||||||
|
if [ -n "$selected_utilities" ]; then
|
||||||
|
install_selected_utilities "$selected_utilities"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
install_system_utils_() {
|
||||||
|
|
||||||
msg_info2 "$(translate "Installing common system utilities...")"
|
msg_info2 "$(translate "Installing common system utilities...")"
|
||||||
|
|
||||||
if [[ "$LANGUAGE" != "en" ]]; then
|
if [[ "$LANGUAGE" != "en" ]]; then
|
||||||
|
Loading…
x
Reference in New Issue
Block a user