#!/bin/bash # TimeSafari Database Clearing Script # Author: Matthew Raymer # Date: 2025-07-11 set -e echo "=== TimeSafari Database Clearing Script ===" echo "" # Detect platform if [[ "$OSTYPE" == "linux-gnu"* ]]; then PLATFORM="linux" elif [[ "$OSTYPE" == "darwin"* ]]; then PLATFORM="macos" elif [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "cygwin" ]]; then PLATFORM="windows" else PLATFORM="unknown" fi echo "Detected platform: $PLATFORM" echo "" # Function to clear Electron database clear_electron_database() { echo "๐Ÿงน Clearing Electron Database..." local db_path="" case $PLATFORM in "linux") db_path="$HOME/Databases/TimeSafari" ;; "macos") db_path="$HOME/Library/Application Support/TimeSafari" ;; "windows") db_path="$APPDATA/TimeSafari" ;; *) echo "โŒ Unknown platform: $PLATFORM" exit 1 ;; esac if [[ -d "$db_path" ]]; then echo "Found database at: $db_path" echo "Removing database files..." rm -rf "$db_path"/* echo "โœ… Electron database cleared successfully!" else echo "โ„น๏ธ No database found at: $db_path" echo " (This is normal if you haven't run the app yet)" fi } # Function to show web browser instructions show_web_instructions() { echo "๐ŸŒ Web Browser Database Clearing Instructions:" echo "" echo "For reliable database clearing in web browsers, use a custom data directory:" echo "" case $PLATFORM in "linux") echo "๐Ÿ“ Create custom data directory:" echo " mkdir -p ~/timesafari-dev-data" echo "" echo "๐Ÿš€ Start browser with custom data directory:" echo " # Chrome/Chromium:" echo " google-chrome --user-data-dir=~/timesafari-dev-data" echo " # Firefox:" echo " firefox --profile ~/timesafari-dev-data" echo "" echo "๐Ÿงน Clear database:" echo " rm -rf ~/timesafari-dev-data" ;; "macos") echo "๐Ÿ“ Create custom data directory:" echo " mkdir -p ~/timesafari-dev-data" echo "" echo "๐Ÿš€ Start browser with custom data directory:" echo " # Chrome:" echo " /Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome --user-data-dir=~/timesafari-dev-data" echo " # Firefox:" echo " /Applications/Firefox.app/Contents/MacOS/firefox --profile ~/timesafari-dev-data" echo "" echo "๐Ÿงน Clear database:" echo " rm -rf ~/timesafari-dev-data" ;; "windows") echo "๐Ÿ“ Create custom data directory:" echo " mkdir %USERPROFILE%\\timesafari-dev-data" echo "" echo "๐Ÿš€ Start browser with custom data directory:" echo " # Chrome:" echo " \"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe\" --user-data-dir=%USERPROFILE%\\timesafari-dev-data" echo " # Firefox:" echo " \"C:\\Program Files\\Mozilla Firefox\\firefox.exe\" --profile %USERPROFILE%\\timesafari-dev-data" echo "" echo "๐Ÿงน Clear database:" echo " rmdir /s /q %USERPROFILE%\\timesafari-dev-data" ;; esac } # Function to show manual browser clearing show_manual_browser_clearing() { echo "๐Ÿ”ง Manual Browser Database Clearing:" echo "" echo "If you prefer to use your regular browser profile:" echo "" echo "1. Open browser Developer Tools (F12)" echo "2. Go to Application/Storage tab" echo "3. Find 'IndexedDB' section" echo "4. Delete 'TimeSafari' database" echo "5. Refresh the page" echo "" echo "โš ๏ธ Note: This only clears the current site's data." echo " For complete clearing, use the custom data directory method above." } # Main script logic echo "Choose your platform:" echo "1. Electron (Desktop App)" echo "2. Web Browser - Custom Data Directory" echo "3. Web Browser - Manual Clearing" echo "4. Show all options" echo "" read -p "Enter your choice (1-4): " choice case $choice in 1) clear_electron_database ;; 2) show_web_instructions ;; 3) show_manual_browser_clearing ;; 4) echo "=== All Database Clearing Options ===" echo "" clear_electron_database echo "" show_web_instructions echo "" show_manual_browser_clearing ;; *) echo "โŒ Invalid choice. Please run the script again." exit 1 ;; esac echo "" echo "โœ… Database clearing instructions completed!" echo "" echo "๐Ÿ’ก Tip: After clearing the database, restart your development server:" echo " npm run build:electron:dev # For Electron" echo " npm run build:web:dev # For Web"