mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-04-10 13:02:59 +00:00
Fix/plugin permission errors (#181)
* fix: Use plugin.modes instead of manifest.json for available modes - Display controller now checks plugin_instance.modes first before falling back to manifest - This allows plugins to dynamically provide modes based on enabled leagues - Fixes issue where disabled leagues (WNBA, NCAAW) appeared in available modes - Plugins can now control their available modes at runtime based on config * fix: Handle permission errors when removing plugin directories - Added _safe_remove_directory() method to handle permission errors gracefully - Fixes permissions on __pycache__ directories before removal - Updates uninstall_plugin() and install methods to use safe removal - Resolves [Errno 13] Permission denied errors during plugin install/uninstall * refactor: Improve error handling in _safe_remove_directory - Rename unused 'dirs' variable to '_dirs' to indicate intentional non-use - Use logger.exception() instead of logger.error() to preserve stack traces - Add comment explaining 0o777 permissions are acceptable (temporary before deletion) * fix(install): Fix one-shot-install script reliability issues - Install git and curl before attempting repository clone - Add HOME variable validation to prevent path errors - Improve git branch detection (try current branch, main, then master) - Add validation for all directory change operations - Improve hostname command handling in success message - Fix edge cases for better installation success rate * fix(install): Fix IP address display in installation completion message - Replace unreliable pipe-to-while-read loop with direct for loop - Filter out loopback addresses (127.0.0.1, ::1) from display - Add proper message when no non-loopback IPs are found - Fixes blank IP address display issue at end of installation * fix(install): Prevent unintended merges in one-shot-install git pull logic - Use git pull --ff-only for current branch to avoid unintended merges - Use git fetch (not pull) for other branches to check existence without merging - Only update current branch if fast-forward is possible - Provide better warnings when branch updates fail but other branches exist - Prevents risk of merging remote main/master into unrelated working branches * fix(install): Improve IPv6 address handling in installation scripts - Filter out IPv6 link-local addresses (fe80:) in addition to loopback - Properly format IPv6 addresses with brackets in URLs (http://[::1]:5000) - Filter loopback and link-local addresses when selecting IP for display - Prevents invalid IPv6 URLs and excludes non-useful addresses - Fixes: first_time_install.sh and one-shot-install.sh IP display logic --------- Co-authored-by: Chuck <chuck@example.com>
This commit is contained in:
@@ -1405,13 +1405,21 @@ echo ""
|
||||
# Get current IP addresses
|
||||
echo "Current IP Addresses:"
|
||||
if command -v hostname >/dev/null 2>&1; then
|
||||
IPS=$(hostname -I 2>/dev/null | tr ' ' '\n' | grep -v '^$' || echo "")
|
||||
# Get IP addresses and filter out empty lines
|
||||
IPS=$(hostname -I 2>/dev/null || echo "")
|
||||
if [ -n "$IPS" ]; then
|
||||
echo "$IPS" | while read -r ip; do
|
||||
if [ -n "$ip" ]; then
|
||||
echo " - $ip"
|
||||
fi
|
||||
done
|
||||
# Use a more reliable method to process IPs
|
||||
FOUND_IPS=0
|
||||
for ip in $IPS; do
|
||||
# Filter out loopback, empty strings, and IPv6 link-local addresses (fe80:)
|
||||
if [ -n "$ip" ] && [ "$ip" != "127.0.0.1" ] && [ "$ip" != "::1" ] && ! [[ "$ip" =~ ^fe80: ]]; then
|
||||
echo " - $ip"
|
||||
FOUND_IPS=1
|
||||
fi
|
||||
done
|
||||
if [ "$FOUND_IPS" -eq 0 ]; then
|
||||
echo " ⚠ No non-loopback IP addresses found"
|
||||
fi
|
||||
else
|
||||
echo " ⚠ No IP addresses found"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user