You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.8 KiB
62 lines
1.8 KiB
#!/bin/bash
|
|
# clean-android.sh
|
|
# Author: Matthew Raymer
|
|
# Date: 2025-08-19
|
|
# Description: Clean Android app with timeout protection to prevent hanging
|
|
# This script safely uninstalls the TimeSafari app from connected Android devices
|
|
# with a 30-second timeout to prevent indefinite hanging.
|
|
|
|
# Exit on any error
|
|
set -e
|
|
|
|
# Source common utilities
|
|
source "$(dirname "$0")/common.sh"
|
|
|
|
# Function to implement timeout for systems without timeout command
|
|
timeout_command() {
|
|
local timeout_seconds="$1"
|
|
shift
|
|
|
|
# Check if timeout command exists
|
|
if command -v timeout &> /dev/null; then
|
|
timeout "$timeout_seconds" "$@"
|
|
else
|
|
# Fallback for systems without timeout (like macOS)
|
|
# Use perl to implement timeout
|
|
perl -e '
|
|
eval {
|
|
local $SIG{ALRM} = sub { die "timeout" };
|
|
alarm shift;
|
|
system @ARGV;
|
|
alarm 0;
|
|
};
|
|
if ($@) { exit 1; }
|
|
' "$timeout_seconds" "$@"
|
|
fi
|
|
}
|
|
|
|
log_info "Starting Android cleanup process..."
|
|
|
|
# Check if adb is available
|
|
if ! command -v adb &> /dev/null; then
|
|
log_error "adb command not found. Please install Android SDK Platform Tools."
|
|
exit 1
|
|
fi
|
|
|
|
# Check for connected devices
|
|
log_info "Checking for connected Android devices..."
|
|
if adb devices | grep -q 'device$'; then
|
|
log_info "Android device(s) found. Attempting to uninstall app..."
|
|
|
|
# Try to uninstall with timeout
|
|
if timeout_command 30 adb uninstall app.timesafari.app; then
|
|
log_success "Successfully uninstalled TimeSafari app"
|
|
else
|
|
log_warn "Uninstall failed or timed out after 30 seconds"
|
|
log_info "This is normal if the app wasn't installed or device is unresponsive"
|
|
fi
|
|
else
|
|
log_info "No Android devices connected. Skipping uninstall."
|
|
fi
|
|
|
|
log_success "Android cleanup process completed"
|
|
|