forked from jsnbuchanan/crowd-funder-for-time-pwa
migration: move to bash based build scripts
This commit is contained in:
82
scripts/build-electron-linux.sh
Executable file
82
scripts/build-electron-linux.sh
Executable file
@@ -0,0 +1,82 @@
|
||||
#!/bin/bash
|
||||
# build-electron-linux.sh
|
||||
# Author: Matthew Raymer
|
||||
# Description: Electron Linux build script for TimeSafari application
|
||||
# This script builds Electron packages for Linux with support for different formats.
|
||||
#
|
||||
# Usage: ./scripts/build-electron-linux.sh [deb|prod]
|
||||
# - No argument: Builds AppImage
|
||||
# - deb: Builds .deb package
|
||||
# - prod: Builds production AppImage
|
||||
#
|
||||
# Exit Codes:
|
||||
# 1 - Build failed
|
||||
# 2 - Invalid argument
|
||||
|
||||
# Exit on any error
|
||||
set -e
|
||||
|
||||
# Source common utilities
|
||||
source "$(dirname "$0")/common.sh"
|
||||
|
||||
# Parse command line arguments
|
||||
parse_args "$@"
|
||||
|
||||
# Parse build type argument
|
||||
BUILD_TYPE=${1:-"appimage"}
|
||||
PRODUCTION=false
|
||||
|
||||
case $BUILD_TYPE in
|
||||
"deb")
|
||||
BUILD_TARGET="deb"
|
||||
log_info "Building .deb package"
|
||||
;;
|
||||
"prod")
|
||||
BUILD_TARGET="AppImage"
|
||||
PRODUCTION=true
|
||||
log_info "Building production AppImage"
|
||||
;;
|
||||
"appimage"|"")
|
||||
BUILD_TARGET="AppImage"
|
||||
log_info "Building AppImage"
|
||||
;;
|
||||
*)
|
||||
log_error "Invalid build type: $BUILD_TYPE"
|
||||
log_error "Usage: $0 [deb|prod]"
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
|
||||
# Print build header
|
||||
print_header "TimeSafari Electron Linux Build"
|
||||
log_info "Starting Linux build process at $(date)"
|
||||
log_info "Build type: $BUILD_TYPE"
|
||||
log_info "Build target: $BUILD_TARGET"
|
||||
log_info "Production mode: $PRODUCTION"
|
||||
|
||||
# Setup environment for Electron build
|
||||
setup_build_env "electron" "$PRODUCTION"
|
||||
|
||||
# Setup application directories
|
||||
setup_app_directories
|
||||
|
||||
# Load environment from .env file if it exists
|
||||
load_env_file ".env"
|
||||
|
||||
# Step 1: Build Electron application
|
||||
if [ "$PRODUCTION" = true ]; then
|
||||
safe_execute "Building production Electron application" "npm run build:electron-prod" || exit 1
|
||||
else
|
||||
safe_execute "Building Electron application" "npm run build:electron" || exit 1
|
||||
fi
|
||||
|
||||
# Step 2: Build package
|
||||
safe_execute "Building Linux package" "npx electron-builder --linux $BUILD_TARGET" || exit 1
|
||||
|
||||
# Print build summary
|
||||
log_success "Linux build completed successfully!"
|
||||
log_info "Package type: $BUILD_TARGET"
|
||||
print_footer "Linux Build"
|
||||
|
||||
# Exit with success
|
||||
exit 0
|
||||
Reference in New Issue
Block a user