testsAndMisc/linux_configuration/periodic_background/lib/services_report.sh
2026-10-02 18:02:44 +02:00

75 lines
2.4 KiB
Bash
Executable File

#!/usr/bin/env bash
# lib/services_report.sh — usage text and the end-of-run status summary table.
#
# Sourced by check_and_enable_services.sh. Reads SERVICE_STATUS, ISSUES_FOUND,
# FIXES_APPLIED, DRY_RUN, STATUS_ONLY and the colour globals from the caller.
usage() {
cat <<'EOF'
Check and Enable Digital Wellbeing Services
============================================
Usage: sudo ./check_and_enable_services.sh [options]
Options:
--dry-run Show what would be done without making changes
--status Only show status, don't enable anything
-h, --help Show this help message
Services checked:
1. Pacman wrapper - Policy-aware pacman wrapper with friction mechanics
2. Midnight shutdown - Day-specific automatic shutdown timer
3. Startup monitor - PC startup time monitoring service
4. Periodic systems - Hourly maintenance timer and hosts monitor
5. Hosts and guards - /etc/hosts blocking and protection layers
6. Compulsive blocker - Limits messaging apps to one launch per hour
7. Thorium startup - Auto-launch Thorium with Fitatu on boot
8. LeechBlock - Browser extension for site blocking
9. Guest mode removal - Disable Chromium guest mode via policy
10. VirtualBox hosts - Enforce /etc/hosts inside VMs
11. Workout lock screen - Requires workout logging to unlock screen (user service)
EOF
}
print_summary() {
header "Summary"
echo ""
printf "%-25s %s\n" "Service" "Status"
printf "%-25s %s\n" "-------" "------"
for service in pacman_wrapper makepkg_wrapper midnight_shutdown periodic_systems hosts compulsive_blocker leechblock guest_mode_removal vbox_hosts workout_locker; do
local status
status="$(get_service_status "$service")"
local color
case "$status" in
ok) color=$GREEN ;;
warning) color=$YELLOW ;;
error) color=$RED ;;
"n/a" | skipped) color=$BLUE ;;
*) color=$NC ;;
esac
printf "%-25s ${color}%s${NC}\n" "$service" "$status"
done
echo ""
if [[ $DRY_RUN -eq 1 ]]; then
note "DRY RUN - No changes were made"
fi
if [[ $ISSUES_FOUND -eq 0 ]]; then
msg "All services are properly configured!"
else
if [[ $STATUS_ONLY -eq 1 ]]; then
warn "Found $ISSUES_FOUND service(s) with issues"
note "Run without --status to fix issues"
else
if [[ $FIXES_APPLIED -gt 0 ]]; then
msg "Applied $FIXES_APPLIED fix(es)"
else
warn "Found $ISSUES_FOUND issue(s) but no fixes were applied"
fi
fi
fi
}