Files
quectel-rgmii-toolkit/simpleupdates/simpleupdate
Cameron Thompson ddd553f40e Create simpleupdate
CLI for config of the conf file
2024-04-09 20:39:30 -04:00

106 lines
2.9 KiB
Bash

#!/bin/bash
# Configuration file path
CONFIG_FILE="/usrdata/simpleupdate/simpleupdate.conf"
# Helper function to load and update the configuration
update_config() {
local key="$1"
local value="$2"
if grep -q "^$key=" "$CONFIG_FILE"; then
sed -i "s|^$key=.*|$key=$value|" "$CONFIG_FILE"
else
echo "$key=$value" >> "$CONFIG_FILE"
fi
}
# Display the current configuration status
status() {
echo "Current Configuration Status:"
if [[ -f "$CONFIG_FILE" ]]; then
while IFS= read -r line; do
echo "$line"
done < "$CONFIG_FILE"
else
echo "Configuration file not found."
fi
}
# Enable automatic updates
enable_updates() {
update_config "CONF_ENABLED" "yes"
echo "Automatic updates have been enabled."
}
# Disable automatic updates
disable_updates() {
update_config "CONF_ENABLED" "no"
echo "Automatic updates have been disabled."
}
# Manually start the update process
start_update() {
/usrdata/simpleupdate/simpleupdated &
echo "The update process has been started manually."
}
# Interactive setup for the update configuration
setup() {
read -p "Enable automatic updates? [yes/no]: " enable_updates
if [[ "$enable_updates" == "yes" ]]; then
enable_updates
else
disable_updates
fi
read -p "Check for updates at boot? [yes/no]: " check_boot
update_config "CHECK_AT_BOOT" "$check_boot"
read -p "Update frequency (none, daily, weekly, monthly): " frequency
update_config "UPDATE_FREQUENCY" "$frequency"
case $frequency in
daily)
read -p "Scheduled time (HH:MM in 24-hour format): " time
update_config "SCHEDULED_TIME" "$time"
;;
weekly)
echo "Please enter the day of the week."
read -p "Day (full name or abbreviation, e.g., Monday or Mon): " day_input
# Normalize input to abbreviated form
day_abbr=$(date -d "$day_input" +%a 2>/dev/null)
if [[ $? -ne 0 ]]; then
echo "Invalid day of the week. Please try again."
return 1
fi
update_config "WEEKLY_DAY" "$day_abbr"
read -p "Scheduled time (HH:MM in 24-hour format): " time
update_config "SCHEDULED_TIME" "$time"
;;
monthly)
read -p "Date of the month (1-31): " date
update_config "MONTHLY_DATE" "$date"
read -p "Scheduled time (HH:MM in 24-hour format): " time
update_config "SCHEDULED_TIME" "$time"
;;
*)
echo "No scheduling will be set."
;;
esac
echo "Update configuration has been set."
}
# Parse command-line arguments
case "$1" in
status) status ;;
enable) enable_updates ;;
disable) disable_updates ;;
start) start_update ;;
setup) setup ;;
*)
echo "Usage: $0 {status|enable|disable|start|setup}"
exit 1
;;
esac