From 2e01f7bf37b35fd8e9cb475a6cbaacb2fb0495df Mon Sep 17 00:00:00 2001 From: klein panic Date: Sat, 1 Feb 2025 15:59:38 -0500 Subject: [PATCH] Automated update --- auto_git_update.sh | 57 +++++++++++++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 21 deletions(-) diff --git a/auto_git_update.sh b/auto_git_update.sh index c672531..8c42d45 100755 --- a/auto_git_update.sh +++ b/auto_git_update.sh @@ -19,7 +19,7 @@ ensure_file "$LOGFILE" 600 echo "Advanced logging initialized at ${LOGFILE}" ####################################### -# Configuration (Moved Up to Define REPORT Early) +# Configuration (Define early so that REPORT is available) ####################################### TXT_FILE="/home/klein/.config/setup/autogitupdate.txt" CREDENTIALS_FILE="$HOME/.config/setup/credentials.config" @@ -28,28 +28,16 @@ SMS_REPORT="/tmp/git_update_sms.txt" # Minimal SMS summary SMS_CHAR_LIMIT=160 # Character limit for SMS messages SSH_DIR="/home/klein/reports" -if [ ! -f "$TXT_FILE" ]; then - echo "Error: Configuration file '$TXT_FILE' not found. Exiting the script." - exit 1 -fi - -if [ ! -f "$CREDENTIALS_FILE" ]; then - echo "Error: Credentials file '$CREDENTIALS_FILE' not found. Exiting the script." - exit 1 -fi - -# Source the credentials. -source "$CREDENTIALS_FILE" - -if [ -z "$EMAIL" ] || [ -z "$SSH_HOST" ] || [ -z "$PHONE_NUMBER" ]; then - echo "Error: Missing required credentials (EMAIL, SSH_HOST, or PHONE_NUMBER) in '$CREDENTIALS_FILE'. Exiting the script." - exit 1 -fi - # Ensure the report files exist and have the correct permissions. ensure_file "$REPORT" 600 ensure_file "$SMS_REPORT" 600 +####################################### +# Error Trap Setup +####################################### +# This trap logs the line number and command that failed. +trap 'echo "Error on line $LINENO: command \"$BASH_COMMAND\" exited with status $?" >> "$REPORT"' ERR + ####################################### # Helper Function for Logging ####################################### @@ -99,8 +87,35 @@ done log_msg "All dependencies found." ####################################### -# Helper Functions +# Configuration File Checks ####################################### +echo "Loading configuration..." +if [ ! -f "$TXT_FILE" ]; then + echo "Error: Configuration file '$TXT_FILE' not found. Exiting the script." + log_msg "Configuration file '$TXT_FILE' not found." + exit 1 +fi + +if [ ! -f "$CREDENTIALS_FILE" ]; then + echo "Error: Credentials file '$CREDENTIALS_FILE' not found. Exiting the script." + log_msg "Credentials file '$CREDENTIALS_FILE' not found." + exit 1 +fi + +# Source the credentials. +source "$CREDENTIALS_FILE" +log_msg "Credentials loaded from $CREDENTIALS_FILE." + +if [ -z "$EMAIL" ] || [ -z "$SSH_HOST" ] || [ -z "$PHONE_NUMBER" ]; then + echo "Error: Missing required credentials (EMAIL, SSH_HOST, or PHONE_NUMBER) in '$CREDENTIALS_FILE'. Exiting the script." + log_msg "Required credentials missing in $CREDENTIALS_FILE." + exit 1 +fi + +####################################### +# Helper Functions (continued) +####################################### + check_wifi() { nmcli -t -f ACTIVE,SSID dev wifi | grep -q "^yes" && ping -c 1 8.8.8.8 &>/dev/null return $? @@ -114,7 +129,7 @@ get_repo_dirs() { if [[ -z "$repo_dir" || "$repo_dir" == \#* ]]; then continue fi - # Add repository if the directory exists and contains a .git folder. + # Add repository if it exists and contains a .git folder. if [ -d "$repo_dir" ] && [ -d "$repo_dir/.git" ]; then valid_dirs+=("$repo_dir") fi