97 lines
2.5 KiB
Bash
Executable file
97 lines
2.5 KiB
Bash
Executable file
#!/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 ""
|