feat: add boolean shape ops, visual undo tree, and Augmented Canvas branding
- Boolean operations (union, intersection, difference, xor) via i_overlay with Path shape rendering using earcutr triangulation - Visual undo tree with branching history, checkout, and fork (Cmd+H) using Arc-based snapshots for structural sharing - Consistent Augmented Canvas branding across app title, MCP server, CLI help text, and error messages - macOS .app bundle script and Info.plist for Finder integration - New MCP tool: boolean_op for agent-driven shape composition - 26 tests passing (5 boolean, 6 history, 15 existing)
This commit is contained in:
48
scripts/bundle-macos.sh
Executable file
48
scripts/bundle-macos.sh
Executable file
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Bundle agcanvas as a macOS .app for Finder.
|
||||
# Works on both Apple Silicon and Intel.
|
||||
#
|
||||
# Usage:
|
||||
# ./scripts/bundle-macos.sh # Build release + bundle
|
||||
# ./scripts/bundle-macos.sh --install # Also copy to /Applications
|
||||
#
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
APP_NAME="Augmented Canvas"
|
||||
BUNDLE_DIR="$PROJECT_ROOT/target/release/bundle"
|
||||
APP_BUNDLE="$BUNDLE_DIR/$APP_NAME.app"
|
||||
|
||||
echo "==> Building agcanvas (release)..."
|
||||
cargo build --release -p agcanvas --manifest-path "$PROJECT_ROOT/Cargo.toml"
|
||||
|
||||
echo "==> Creating $APP_NAME.app bundle..."
|
||||
rm -rf "$APP_BUNDLE"
|
||||
mkdir -p "$APP_BUNDLE/Contents/MacOS"
|
||||
mkdir -p "$APP_BUNDLE/Contents/Resources"
|
||||
|
||||
cp "$PROJECT_ROOT/target/release/agcanvas" "$APP_BUNDLE/Contents/MacOS/agcanvas"
|
||||
cp "$PROJECT_ROOT/assets/Info.plist" "$APP_BUNDLE/Contents/Info.plist"
|
||||
|
||||
if [ -f "$PROJECT_ROOT/assets/AppIcon.icns" ]; then
|
||||
cp "$PROJECT_ROOT/assets/AppIcon.icns" "$APP_BUNDLE/Contents/Resources/AppIcon.icns"
|
||||
echo " Icon: AppIcon.icns"
|
||||
else
|
||||
echo " Icon: none (add assets/AppIcon.icns for a custom icon)"
|
||||
fi
|
||||
|
||||
printf 'APPL????' > "$APP_BUNDLE/Contents/PkgInfo"
|
||||
|
||||
echo "==> Bundle created: $APP_BUNDLE"
|
||||
|
||||
if [[ "${1:-}" == "--install" ]]; then
|
||||
echo "==> Installing to /Applications..."
|
||||
rm -rf "/Applications/$APP_NAME.app"
|
||||
cp -r "$APP_BUNDLE" "/Applications/$APP_NAME.app"
|
||||
echo "==> Installed: /Applications/$APP_NAME.app"
|
||||
echo " Open Finder → Applications → Augmented Canvas"
|
||||
fi
|
||||
|
||||
echo "==> Done."
|
||||
Reference in New Issue
Block a user