#!/bin/bash # build-electron.sh # Author: Matthew Raymer # Description: Electron build script for TimeSafari application # This script handles the complete Electron build process including cleanup, # TypeScript compilation, Vite build, and Electron-specific setup. # # Exit Codes: # 1 - Cleanup failed # 2 - TypeScript compilation failed # 3 - Vite build failed # 4 - Electron build script failed # Exit on any error set -e # Source common utilities source "$(dirname "$0")/common.sh" # Parse command line arguments parse_args "$@" # Print build header print_header "TimeSafari Electron Build Process" log_info "Starting Electron build process at $(date)" # Setup environment for Electron build setup_build_env "electron" # Setup application directories setup_app_directories # Load environment from .env file if it exists load_env_file ".env" # Step 1: Clean previous builds safe_execute "Cleaning previous builds" "npm run clean:electron" || exit 1 # Step 2: Compile TypeScript for Electron safe_execute "Compiling TypeScript for Electron" "npx tsc -p tsconfig.electron.json" || exit 2 # Step 3: Build with Vite safe_execute "Building with Vite" "npx vite build --config vite.config.electron.mts" || exit 3 # Step 4: Run Electron build script safe_execute "Running Electron build script" "node scripts/build-electron.js" || exit 4 # Print build summary log_success "Electron build completed successfully!" print_footer "Electron Build" # Exit with success exit 0