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.
		
		
		
		
		
			
		
			
				
					
					
						
							164 lines
						
					
					
						
							4.9 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							164 lines
						
					
					
						
							4.9 KiB
						
					
					
				
								#!/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" 
							 |