#!/bin/bash # Build .deb package from source # Usage: ./scripts/build-deb.sh set -e VERSION="2.0.1-ai-providers-1" DEB_FILE="antigravity_${VERSION}_amd64.deb" echo "Building Antigravity .deb package..." # Check if app.asar exists if [ ! -f "src/app.asar" ]; then echo "Error: src/app.asar not found" echo "Run extract-app.sh and repack-app.sh first" exit 1 fi # Create temporary directory TEMP_DIR=$(mktemp -d) echo "Using temp directory: $TEMP_DIR" # Create package structure mkdir -p "$TEMP_DIR/DEBIAN" mkdir -p "$TEMP_DIR/opt/antigravity" # Copy application files echo "Copying application files..." cp -r Antigravity-x64/* "$TEMP_DIR/opt/antigravity/" # Replace app.asar with our modified version cp src/app.asar "$TEMP_DIR/opt/antigravity/resources/" # Create control file cat > "$TEMP_DIR/DEBIAN/control" << 'EOF' Package: antigravity Version: VERSION_PLACEHOLDER Section: development Priority: optional Architecture: amd64 Depends: libc6 (>= 2.17), libgtk-3-0, libnotify4, libnss3, libxss1, libxtst6, xdg-utils, libatspi2.0-0, libuuid1 Maintainer: Antigravity Team Description: Antigravity IDE with AI Provider GUI Support Antigravity is a modern IDE powered by AI that helps developers write better code faster. This version includes comprehensive GUI support for managing multiple AI providers including OpenAI, Anthropic, Google Gemini, Ollama, OpenRouter, and 15+ other providers. EOF # Replace version placeholder sed -i "s/VERSION_PLACEHOLDER/$VERSION/" "$TEMP_DIR/DEBIAN/control" # Create preinst cat > "$TEMP_DIR/DEBIAN/preinst" << 'EOF' #!/bin/bash set -e echo "Preparing to install Antigravity..." if [ -d /opt/antigravity ]; then echo "Removing previous installation..." rm -rf /opt/antigravity fi mkdir -p /opt/antigravity mkdir -p ~/.config/antigravity mkdir -p ~/.cache/antigravity exit 0 EOF # Create postinst cat > "$TEMP_DIR/DEBIAN/postinst" << 'EOF' #!/bin/bash set -e echo "Installing Antigravity..." chmod 755 /opt/antigravity/antigravity chmod 644 /opt/antigravity/resources.pak chmod 644 /opt/antigravity/icudtl.dat chmod +x /opt/antigravity/chrome-sandbox 2>/dev/null || true mkdir -p /usr/share/applications cat > /usr/share/applications/antigravity.desktop << 'DESKTOP' [Desktop Entry] Version=2.0.1-ai-providers-1 Name=Antigravity IDE Comment=AI-Powered Development Environment with Multi-Provider Support Exec=/opt/antigravity/antigravity %U Icon=/opt/antigravity/icon.png Terminal=false Type=Application Categories=Development;IDE;TextEditor; Keywords=code;developer;ai;programming;ide; StartupWMClass=antigravity DESKTOP ln -sf /opt/antigravity/antigravity /usr/local/bin/antigravity update-desktop-database /usr/share/applications/ 2>/dev/null || true echo "Antigravity installed successfully!" exit 0 EOF # Create prerm cat > "$TEMP_DIR/DEBIAN/prerm" << 'EOF' #!/bin/bash set -e pkill -f antigravity 2>/dev/null || true exit 0 EOF # Create postrm cat > "$TEMP_DIR/DEBIAN/postrm" << 'EOF' #!/bin/bash set -e rm -f /usr/share/applications/antigravity.desktop rm -f /usr/local/bin/antigravity update-desktop-database /usr/share/applications/ 2>/dev/null || true exit 0 EOF # Make scripts executable chmod +x "$TEMP_DIR/DEBIAN/preinst" chmod +x "$TEMP_DIR/DEBIAN/postinst" chmod +x "$TEMP_DIR/DEBIAN/prerm" chmod +x "$TEMP_DIR/DEBIAN/postrm" # Build package echo "Building .deb package..." dpkg-deb --build "$TEMP_DIR" "$DEB_FILE" # Move to packages directory mkdir -p packages mv "$DEB_FILE" packages/ # Cleanup rm -rf "$TEMP_DIR" echo "" echo "✅ Build complete!" echo "Package created: packages/$DEB_FILE" echo "" echo "To install:" echo " sudo dpkg -i packages/$DEB_FILE" echo " antigravity"