diff --git a/plex/plex.sh b/plex/plex.sh index 62e2bb1..997a09d 100755 --- a/plex/plex.sh +++ b/plex/plex.sh @@ -68,28 +68,27 @@ readonly RESET='\033[0m' readonly PLEX_SERVICE="plexmediaserver" SCRIPT_NAME="$(basename "$0")" readonly SCRIPT_NAME -readonly PLEX_WEB_URL="http://localhost:32400/web" -# 🎭 Unicode symbols for fancy output -readonly CHECKMARK="✅" -readonly CROSS="❌" -readonly ROCKET="🚀" -readonly STOP_SIGN="🛑" -readonly RECYCLE="â™ģī¸" -readonly INFO="â„šī¸" -readonly HOURGLASS="âŗ" -readonly SPARKLES="✨" +# 🎭 ASCII symbols for compatible output +readonly CHECKMARK="✓" +readonly CROSS="✗" +readonly ROCKET="â–ļ" +readonly STOP_SIGN="■" +readonly RECYCLE="â†ģ" +readonly INFO="ℹ" +readonly HOURGLASS="⌛" +readonly SPARKLES="âœĻ" # 📊 Function to print fancy headers print_header() { - echo -e "\n${PURPLE}${BOLD}╔══════════════════════════════════════════════════════════════╗${RESET}" - echo -e "${PURPLE}${BOLD}║ ${SPARKLES} PLEX MEDIA SERVER ${SPARKLES} ║${RESET}" - echo -e "${PURPLE}${BOLD}╚══════════════════════════════════════════════════════════════╝${RESET}\n" + echo -e "\n${PURPLE}${BOLD}+==============================================================+${RESET}" + echo -e "${PURPLE}${BOLD}| ${SPARKLES} PLEX MEDIA SERVER ${SPARKLES} |${RESET}" + echo -e "${PURPLE}${BOLD}+==============================================================+${RESET}\n" } # 🎉 Function to print completion footer print_footer() { - echo -e "\n${DIM}${CYAN}╰─── Operation completed ${SPARKLES} ───╯${RESET}\n" + echo -e "\n${DIM}${CYAN}\\--- Operation completed ${SPARKLES} ---/${RESET}\n" } # đŸŽ¯ Function to print status with style @@ -135,7 +134,6 @@ start_plex() { if systemctl is-active --quiet "$PLEX_SERVICE"; then print_status "${CHECKMARK}" "Plex Media Server started successfully!" "${GREEN}" - echo -e "${DIM}${CYAN}Access your server at: ${WHITE}${PLEX_WEB_URL}${RESET}" print_footer else print_status "${CROSS}" "Failed to start Plex Media Server!" "${RED}" @@ -183,9 +181,9 @@ show_detailed_status() { local service_status service_status=$(systemctl is-active "$PLEX_SERVICE" 2>/dev/null || echo "inactive") - echo -e "\n${BOLD}${BLUE}╔══════════════════════════════════════════════════════════════╗${RESET}" - echo -e "${BOLD}${BLUE}║ SERVICE STATUS ║${RESET}" - echo -e "${BOLD}${BLUE}╚══════════════════════════════════════════════════════════════╝${RESET}" + echo -e "\n${BOLD}${BLUE}+==============================================================+${RESET}" + echo -e "${BOLD}${BLUE}| SERVICE STATUS |${RESET}" + echo -e "${BOLD}${BLUE}+==============================================================+${RESET}" case "$service_status" in "active") @@ -205,7 +203,6 @@ show_detailed_status() { echo -e "${DIM}${CYAN} Started: ${WHITE}${uptime}${RESET}" echo -e "${DIM}${CYAN} Memory Usage: ${WHITE}${memory_usage}${RESET}" - echo -e "${DIM}${CYAN} Web Interface: ${WHITE}${PLEX_WEB_URL}${RESET}" echo -e "${DIM}${CYAN} Service Name: ${WHITE}${PLEX_SERVICE}${RESET}" ;; "inactive") @@ -222,9 +219,27 @@ show_detailed_status() { esac # Show recent logs - echo -e "\n${DIM}${CYAN}┌─── Recent Service Logs ───┐${RESET}" - echo -e "${DIM}$(journalctl -u "$PLEX_SERVICE" --no-pager -n 3 --since "7 days ago" 2>/dev/null | tail -3 || echo "No recent logs available")${RESET}" - echo -e "${DIM}${CYAN}└────────────────────────────┘${RESET}" + echo -e "\n${DIM}${CYAN}+--- Recent Service Logs (24h) ---+${RESET}" + + # Try to get logs with sudo, fall back to user permissions + local logs + if logs=$(sudo journalctl -u "$PLEX_SERVICE" --no-pager -n 5 --since "24 hours ago" --output=short 2>/dev/null); then + if [[ -n "$logs" && "$logs" != "-- No entries --" ]]; then + echo -e "${DIM}${logs}${RESET}" + else + echo -e "${DIM}${YELLOW}No recent log entries found${RESET}" + fi + else + # Fallback: try without sudo + logs=$(journalctl -u "$PLEX_SERVICE" --no-pager -n 5 --since "24 hours ago" 2>/dev/null || echo "Unable to access logs") + if [[ "$logs" == "Unable to access logs" || "$logs" == "-- No entries --" ]]; then + echo -e "${DIM}${YELLOW}Unable to access recent logs (try: sudo journalctl -u ${PLEX_SERVICE})${RESET}" + else + echo -e "${DIM}${logs}${RESET}" + fi + fi + + echo -e "${DIM}${CYAN}+----------------------------------+${RESET}" } # 🔧 Show available commands