streamflow/desktop-app/build.sh

98 lines
2.5 KiB
Bash
Raw Permalink Normal View History

#!/bin/bash
# StreamFlow Desktop App Build Script
# Builds AppImage for Linux
set -e
echo "========================================="
echo "StreamFlow Desktop AppImage Builder"
echo "========================================="
echo ""
# Check if Node.js is installed
if ! command -v node &> /dev/null; then
echo "❌ Node.js is not installed. Please install Node.js 18+ first."
exit 1
fi
# Check if npm is installed
if ! command -v npm &> /dev/null; then
echo "❌ npm is not installed. Please install npm first."
exit 1
fi
echo "✓ Node.js version: $(node --version)"
echo "✓ npm version: $(npm --version)"
echo ""
# Check if we're in the correct directory
if [ ! -f "package.json" ]; then
echo "❌ Error: package.json not found. Please run this script from the desktop-app directory."
exit 1
fi
# Install dependencies if node_modules doesn't exist
if [ ! -d "node_modules" ]; then
echo "📦 Installing dependencies..."
npm install
echo "✓ Dependencies installed"
echo ""
else
echo "✓ Dependencies already installed"
echo ""
fi
# Create icon if it doesn't exist
if [ ! -f "build/icon.png" ]; then
echo "⚠️ Warning: build/icon.png not found. Creating placeholder..."
mkdir -p build
# Create a simple PNG icon using ImageMagick if available
if command -v convert &> /dev/null; then
convert -size 512x512 xc:transparent -fill '#667eea' -draw "circle 256,256 256,50" -fill white -gravity center -pointsize 180 -annotate +0+0 "SF" build/icon.png
echo "✓ Placeholder icon created"
else
echo "⚠️ ImageMagick not found. Please manually add an icon.png file to the build/ directory."
echo " Icon should be 512x512 PNG format."
fi
echo ""
fi
# Build the AppImage
echo "🔨 Building AppImage..."
echo ""
# Choose architecture
ARCH="${1:-x64}"
echo "Building for architecture: $ARCH"
echo ""
if [ "$ARCH" = "all" ]; then
npm run build:linux
else
npm run build:linux -- --$ARCH
fi
echo ""
echo "========================================="
echo "✅ Build Complete!"
echo "========================================="
echo ""
# List built files
if [ -d "dist" ]; then
echo "Built files:"
ls -lh dist/*.AppImage 2>/dev/null || echo "No AppImage files found in dist/"
echo ""
echo "AppImage location: $(pwd)/dist/"
else
echo "⚠️ Warning: dist directory not found"
fi
echo ""
echo "To run the AppImage:"
echo " chmod +x dist/StreamFlow-*.AppImage"
echo " ./dist/StreamFlow-*.AppImage"
echo ""