Release v3.2.0: Major macOS compatibility improvements and bug fixes

### Major macOS Compatibility Improvements
- Enhanced Docker Desktop installation and startup process for macOS
- Fixed Docker authentication with macOS keychain integration
- Resolved user directory issues - all directories now use actual user home instead of root
- Fixed password generation issues with missing shuf command and encoding errors
- Improved container creation with proper working directory context
- Enhanced healthcheck monitoring, particularly for Jellyseerr service

### Bug Fixes
- Fixed Docker Compose version warnings by removing obsolete version attribute
- Resolved container startup issues with proper directory navigation
- Fixed file permission issues for config and media directories
- Enhanced cross-platform path handling functions
- Improved error handling and user feedback throughout installation process

### Code Quality Improvements
- Updated all version references to v3.2.0
- Enhanced documentation with macOS-specific improvements
- Improved cross-platform compatibility across all components
- Better error messages and troubleshooting guidance

This release significantly improves the macOS user experience and resolves
numerous compatibility issues that were preventing successful installation
and operation on macOS systems.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Stephen Klein
2025-07-18 05:07:32 -04:00
parent 7358ff679d
commit 60bf2054bd
9 changed files with 384 additions and 57 deletions
+40 -2
View File
@@ -2,7 +2,7 @@
# HOPS - Common Utility Functions
# Shared functions for logging, error handling, and UI
# Version: 3.1.0-beta
# Version: 3.2.0
# Prevent multiple sourcing
if [[ -n "${HOPS_COMMON_LOADED:-}" ]]; then
@@ -101,7 +101,7 @@ show_hops_header() {
local subtitle="$2"
if [[ -z "$version" ]]; then
version="3.1.0"
version="3.2.0"
fi
clear
@@ -266,4 +266,42 @@ get_available_port() {
done
echo "$port"
}
# Cross-platform shuffle function (alternative to shuf)
shuffle_string() {
local input_string="$1"
local chars=()
local i
# Convert string to array of characters
for (( i=0; i<${#input_string}; i++ )); do
chars+=("${input_string:$i:1}")
done
# Fisher-Yates shuffle algorithm
for (( i=${#chars[@]}-1; i>0; i-- )); do
local j=$((RANDOM % (i+1)))
local temp="${chars[i]}"
chars[i]="${chars[j]}"
chars[j]="$temp"
done
# Convert back to string
printf '%s' "${chars[@]}"
}
# Cross-platform character generation (alternative to tr with better encoding)
generate_chars() {
local char_set="$1"
local count="$2"
local result=""
local i
for (( i=0; i<count; i++ )); do
local char_index=$((RANDOM % ${#char_set}))
result+="${char_set:$char_index:1}"
done
echo "$result"
}