Update customizable_post_install.sh

This commit is contained in:
MacRimi 2025-07-30 17:59:12 +02:00
parent d712054353
commit 23f8b97319

View File

@ -684,12 +684,28 @@ configure_time_sync() {
install_system_utils() {
install_system_utils() {
command_exists() {
command -v "$1" >/dev/null 2>&1
}
ensure_repositories() {
local sources_file="/etc/apt/sources.list"
local need_update=false
if ! grep -q "deb.*${OS_CODENAME}.*main" "$sources_file"; then
echo "deb http://deb.debian.org/debian ${OS_CODENAME} main contrib non-free non-free-firmware" >> "$sources_file"
need_update=true
fi
if [ "$need_update" = true ] || ! apt list --installed >/dev/null 2>&1; then
apt update >/dev/null 2>&1
fi
return 0
}
install_single_package() {
local package="$1"
@ -697,31 +713,25 @@ install_system_utils() {
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
# Ya no necesitamos apt update aquí porque se hizo en ensure_repositories
if 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
@ -734,12 +744,9 @@ install_system_utils() {
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
@ -754,7 +761,6 @@ install_system_utils() {
fi
}
show_utilities_selection() {
local utilities=(
"axel" "$(translate "Download accelerator")" "OFF"
@ -791,7 +797,6 @@ install_system_utils() {
echo "$selected"
}
install_selected_utilities() {
local selected="$1"
@ -807,15 +812,18 @@ install_system_utils() {
msg_title "$SCRIPT_TITLE"
msg_info2 "$(translate "Installing selected utilities")"
if ! ensure_repositories; then
msg_error "$(translate "Failed to configure repositories. Installation aborted.")"
return 1
fi
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"
@ -826,142 +834,41 @@ install_system_utils() {
)
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))
;;
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
hash -r 2>/dev/null
echo
msg_info2 "$(translate "Installation summary"):"
msg_ok "$(translate "Successful"): $success"
if [ $warning -gt 0 ]; then
msg_warn "$(translate "Warnings"): $warning"
fi
if [ $failed -gt 0 ]; then
msg_error "$(translate "Failed"): $failed"
fi
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...")"
if [[ "$LANGUAGE" != "en" ]]; then
msg_lang "$(translate "Generating automatic translations...")"
fi
packages_list=(
axel "$(translate "Download accelerator")" OFF
dialog "$(translate "Console GUI dialogs")" 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
aria2c "$(translate "Multi-source downloader")" OFF
cabextract "$(translate "Extract CAB files")" OFF
wimlib-imagex "$(translate "Manage WIM images")" OFF
genisoimage "$(translate "Create ISO images")" OFF
chntpw "$(translate "Edit Windows registry/passwords")" OFF
)
cleanup
choices=$(whiptail --title "System Utilities" \
--checklist "$(translate "Select the system utilities to install:")" 20 70 12 \
"${packages_list[@]}" 3>&1 1>&2 2>&3)
if [ $? -ne 0 ]; then
msg_warn "$(translate "Installation cancelled by user")"
return
fi
selected_packages=($choices)
if [ ${#selected_packages[@]} -eq 0 ]; then
msg_warn "$(translate "No packages selected for installation")"
return
fi
tput civis
tput sc
for package in "${selected_packages[@]}"; do
if dpkg -s "$package" >/dev/null 2>&1; then
continue
fi
tput rc
tput ed
row=$(( $(tput lines) - 6 ))
tput cup $row 0; echo "$(translate "Installing system utilities...")"
tput cup $((row + 1)) 0; echo "──────────────────────────────────────────────"
tput cup $((row + 2)) 0; echo "Package: $package"
tput cup $((row + 3)) 0; echo "Progress: [ ] 0%"
tput cup $((row + 4)) 0; echo "──────────────────────────────────────────────"
for i in $(seq 1 10); do
progress=$((i * 10))
tput cup $((row + 3)) 9
printf "[%-50s] %3d%%" "$(printf "#%.0s" $(seq 1 $((progress/2))))" "$progress"
done
/usr/bin/env DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::='--force-confdef' install "$package" > /dev/null 2>&1
done
tput rc
tput ed
tput cnorm
msg_ok "$(translate "System utilities installed successfully")"
msg_success "$(translate "Common system utilities installation completed")"
}