refactor: reorganize project structure for build assets and scripts (#419)

Move build resources to resources/build/, icon source files to
resources/icon-source/, scripts to config/scripts/, and patches
to config/patches/ for a cleaner top-level directory layout.
This commit is contained in:
Jinjing 2026-04-09 12:28:52 -07:00 committed by GitHub
parent e5f75564af
commit bced9b5308
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 18 additions and 18 deletions

2
.gitignore vendored
View file

@ -8,7 +8,7 @@ node_modules/
dist/
dist-electron/
out/
build/
/build/
release/
# pnpm

View file

@ -1,5 +1,5 @@
<p align="center">
<a href="https://onOrca.dev"><img src="build/icon.png" alt="Orca" width="128" /></a>
<a href="https://onOrca.dev"><img src="resources/build/icon.png" alt="Orca" width="128" /></a>
</p>
<h1 align="center">Orca</h1>

View file

@ -5,7 +5,7 @@ module.exports = {
appId: 'com.stablyai.orca',
productName: 'Orca',
directories: {
buildResources: 'build'
buildResources: 'resources/build'
},
files: [
'!**/.vscode/*',
@ -37,9 +37,9 @@ module.exports = {
createDesktopShortcut: 'always'
},
mac: {
icon: 'build/icon.icns',
entitlements: 'build/entitlements.mac.plist',
entitlementsInherit: 'build/entitlements.mac.plist',
icon: 'resources/build/icon.icns',
entitlements: 'resources/build/entitlements.mac.plist',
entitlementsInherit: 'resources/build/entitlements.mac.plist',
extendInfo: {
NSCameraUsageDescription: "Application requests access to the device's camera.",
NSMicrophoneUsageDescription: "Application requests access to the device's microphone.",

View file

@ -24,14 +24,14 @@
"start": "electron-vite preview",
"dev": "electron-vite dev",
"build:cli": "tsc -p config/tsconfig.cli.json --outDir out --composite false --incremental false",
"build:electron-vite": "node scripts/run-electron-vite-build.mjs",
"build:electron-vite": "node config/scripts/run-electron-vite-build.mjs",
"build": "pnpm run typecheck && pnpm run build:electron-vite && pnpm run build:cli",
"postinstall": "pnpm rebuild electron && electron-builder install-app-deps",
"build:unpack": "pnpm run build && electron-builder --config config/electron-builder.config.cjs --dir",
"build:win": "pnpm run build && electron-builder --config config/electron-builder.config.cjs --win",
"build:icons": "bash icon/generate.sh",
"build:icons": "bash resources/icon-source/generate.sh",
"build:mac": "pnpm run build && electron-builder --config config/electron-builder.config.cjs --mac",
"build:mac:release": "node scripts/verify-macos-release-env.mjs && ORCA_MAC_RELEASE=1 pnpm run build && ORCA_MAC_RELEASE=1 electron-builder --config config/electron-builder.config.cjs --mac",
"build:mac:release": "node config/scripts/verify-macos-release-env.mjs && ORCA_MAC_RELEASE=1 pnpm run build && ORCA_MAC_RELEASE=1 electron-builder --config config/electron-builder.config.cjs --mac",
"build:linux": "pnpm run build && electron-builder --config config/electron-builder.config.cjs --linux",
"release:rc": "npm version prerelease --preid=rc && git push --follow-tags",
"release:patch": "npm version patch && git push --follow-tags",
@ -129,7 +129,7 @@
"node-pty"
],
"patchedDependencies": {
"@xterm/addon-fit@0.11.0": "patches/@xterm__addon-fit@0.11.0.patch"
"@xterm/addon-fit@0.11.0": "config/patches/@xterm__addon-fit@0.11.0.patch"
}
}
}

View file

@ -7,7 +7,7 @@ settings:
patchedDependencies:
'@xterm/addon-fit@0.11.0':
hash: 12b1dc2811a859b6703ebb63be654d1682ff1bb6045713a54e7d47e28deb7776
path: patches/@xterm__addon-fit@0.11.0.patch
path: config/patches/@xterm__addon-fit@0.11.0.patch
importers:

View file

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 117 KiB

View file

Before

Width:  |  Height:  |  Size: 353 KiB

After

Width:  |  Height:  |  Size: 353 KiB

View file

@ -1,12 +1,12 @@
#!/bin/bash
# Generate app icons from Icon Composer .icon project
# Produces: build/icon.icns (macOS), build/icon.png (fallback), resources/icon.png (tray)
# Produces: resources/build/icon.icns (macOS), resources/build/icon.png (fallback), resources/icon.png (tray)
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
PROJECT_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")"
ICON_SOURCE="$SCRIPT_DIR/icon.icon"
BUILD_DIR="$PROJECT_DIR/build"
BUILD_DIR="$PROJECT_DIR/resources/build"
RESOURCES_DIR="$PROJECT_DIR/resources"
TMP_DIR=$(mktemp -d)
@ -29,11 +29,11 @@ if [ ! -f "$TMP_DIR/icon.icns" ]; then
fi
cp "$TMP_DIR/icon.icns" "$BUILD_DIR/icon.icns"
echo " -> build/icon.icns"
echo " -> resources/build/icon.icns"
# Extract 1024x1024 PNG from icns for electron-builder fallback & resources
sips -s format png --resampleWidth 1024 "$BUILD_DIR/icon.icns" --out "$BUILD_DIR/icon.png" >/dev/null 2>&1
echo " -> build/icon.png (1024x1024)"
echo " -> resources/build/icon.png (1024x1024)"
sips -s format png --resampleWidth 256 "$BUILD_DIR/icon.icns" --out "$RESOURCES_DIR/icon.png" >/dev/null 2>&1
echo " -> resources/icon.png (256x256)"
@ -41,10 +41,10 @@ echo " -> resources/icon.png (256x256)"
# Generate .ico for Windows (proper ICO format with multiple sizes)
if command -v magick &>/dev/null; then
magick "$BUILD_DIR/icon.png" -define icon:auto-resize=256,128,64,48,32,16 "$BUILD_DIR/icon.ico"
echo " -> build/icon.ico (multi-size ICO via ImageMagick)"
echo " -> resources/build/icon.ico (multi-size ICO via ImageMagick)"
else
echo "Warning: ImageMagick not found, skipping icon.ico generation" >&2
echo "Install with: brew install imagemagick" >&2
fi
echo "Done! Icons generated in build/ and resources/"
echo "Done! Icons generated in resources/build/ and resources/"

View file

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB