Add logging, dialog UI, README updates and initial release

This commit is contained in:
Ed Nielsen 2026-03-18 19:25:01 +01:00
parent 15d3f0b2d6
commit ab945b1caf
4 changed files with 339 additions and 118 deletions

152
update-manager-ui.sh Executable file
View file

@ -0,0 +1,152 @@
#!/usr/bin/env bash
UPDATE_MANAGER_SCRIPT="$HOME/update-manager/update-manager.sh"
HOSTS_FILE="/opt/update-manager/hosts.conf"
get_log_file() {
local primary="/opt/update-manager/log/update-manager.log"
local fallback="$HOME/update-manager/log/update-manager.log"
if [[ -f "$primary" ]]; then
echo "$primary"
else
echo "$fallback"
fi
}
run_check() {
echo
bash "$UPDATE_MANAGER_SCRIPT" check
echo
read -rp "Press Enter to continue..."
}
view_hosts() {
echo
if [[ -f "$HOSTS_FILE" ]]; then
cat "$HOSTS_FILE"
else
echo "Hosts file not found: $HOSTS_FILE"
fi
echo
read -rp "Press Enter to continue..."
}
edit_hosts() {
nano "$HOSTS_FILE"
}
add_host() {
echo
read -rp "Name: " name
read -rp "IP: " ip
read -rp "User: " user
echo "$name $ip $user" >> "$HOSTS_FILE"
echo "Host added."
echo
read -rp "Press Enter to continue..."
}
remove_host() {
echo
nl -w2 -s'. ' "$HOSTS_FILE"
echo
read -rp "Enter line number to remove: " line
sed -i "${line}d" "$HOSTS_FILE"
echo "Host removed."
echo
read -rp "Press Enter to continue..."
}
view_log() {
local log_file
log_file="$(get_log_file)"
echo
if [[ -f "$log_file" ]]; then
less "$log_file"
else
echo "Log file not found: $log_file"
read -rp "Press Enter to continue..."
fi
}
follow_log() {
local log_file
log_file="$(get_log_file)"
echo
if [[ -f "$log_file" ]]; then
echo "Following log: $log_file"
echo "Press Ctrl+C to stop."
echo
tail -f "$log_file"
else
echo "Log file not found: $log_file"
fi
echo
read -rp "Press Enter to continue..."
}
show_log_location() {
local log_file
log_file="$(get_log_file)"
echo
echo "Log file location:"
echo "$log_file"
echo
read -rp "Press Enter to continue..."
}
show_menu() {
clear
echo "=================================="
echo " Update Manager UI"
echo "=================================="
echo
echo "1) Check all hosts"
echo "2) View hosts file"
echo "3) Edit hosts file"
echo "4) Add host"
echo "5) Remove host"
echo "6) View full log"
echo "7) Follow log live"
echo "8) Show log location"
echo "0) Exit"
echo
}
main() {
while true; do
show_menu
read -rp "Choose an option: " choice
case "$choice" in
1) run_check ;;
2) view_hosts ;;
3) edit_hosts ;;
4) add_host ;;
5) remove_host ;;
6) view_log ;;
7) follow_log ;;
8) show_log_location ;;
0)
echo
echo "Bye."
exit 0
;;
*)
echo "Invalid choice"
read -rp "Press Enter to continue..."
;;
esac
done
}
main