build: упаковка расширений в scripts/build.sh
- build.sh: новые команды extensions, chrome, firefox - Chrome: build/verstak-bridge-chrome.zip - Firefox: build/verstak-bridge-firefox.xpi - Архивы содержат только нужные файлы (manifest, background, popup) - Исключены .DS_Store, Thumbs.db, __MACOSX, .git
This commit is contained in:
parent
c5505ee43c
commit
f6c61c32e3
105
scripts/build.sh
105
scripts/build.sh
|
|
@ -1,7 +1,14 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Individual build scripts
|
||||
# ============================================================
|
||||
# Verstak build script
|
||||
# Usage: ./scripts/build.sh [gui|server|extensions|all]
|
||||
# ============================================================
|
||||
|
||||
BUILD_DIR="build"
|
||||
|
||||
# --- GUI binary ---
|
||||
|
||||
build_gui() {
|
||||
echo "==> Building GUI binary..."
|
||||
|
|
@ -16,31 +23,105 @@ build_gui() {
|
|||
|
||||
# Build Go binary with Wails v2
|
||||
# Tags: webkit2_41 required for WebKitGTK 2.41+, desktop/production for Wails
|
||||
go build -tags "webkit2_41 desktop production" -ldflags="-s -w" -o build/verstak-gui-linux-amd64 ./cmd/verstak-gui/
|
||||
go build -tags "webkit2_41 desktop production" -ldflags="-s -w" -o "$BUILD_DIR/verstak-gui-linux-amd64" ./cmd/verstak-gui/
|
||||
|
||||
echo "==> GUI binary: build/verstak-gui-linux-amd64"
|
||||
echo "==> GUI binary: $BUILD_DIR/verstak-gui-linux-amd64"
|
||||
}
|
||||
|
||||
# --- Server binary ---
|
||||
|
||||
build_server() {
|
||||
echo "==> Building server binary..."
|
||||
go build -ldflags="-s -w" -o build/verstak-server-linux-amd64 ./cmd/verstak-server/
|
||||
echo "==> Server binary: build/verstak-server-linux-amd64"
|
||||
go build -ldflags="-s -w" -o "$BUILD_DIR/verstak-server-linux-amd64" ./cmd/verstak-server/
|
||||
echo "==> Server binary: $BUILD_DIR/verstak-server-linux-amd64"
|
||||
}
|
||||
|
||||
# --- Chrome extension ---
|
||||
|
||||
build_chrome_extension() {
|
||||
echo "==> Building Chrome extension..."
|
||||
|
||||
local ext_dir="extension"
|
||||
local out_file="$BUILD_DIR/verstak-bridge-chrome.zip"
|
||||
|
||||
if [ ! -d "$ext_dir" ]; then
|
||||
echo "ERROR: $ext_dir/ directory not found"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Create a clean zip: manifest.json, background.js, popup/*
|
||||
# Exclude any hidden files, icons (not needed for dev install), and OS junk
|
||||
cd "$ext_dir"
|
||||
zip -r "../$out_file" \
|
||||
manifest.json \
|
||||
background.js \
|
||||
popup/ \
|
||||
-x "*/.DS_Store" "*/Thumbs.db" "*/__MACOSX/*" "*/.git/*"
|
||||
cd ..
|
||||
|
||||
echo "==> Chrome extension: $out_file"
|
||||
}
|
||||
|
||||
# --- Firefox extension ---
|
||||
|
||||
build_firefox_extension() {
|
||||
echo "==> Building Firefox extension..."
|
||||
|
||||
local ext_dir="extension-firefox"
|
||||
local out_file="$BUILD_DIR/verstak-bridge-firefox.xpi"
|
||||
|
||||
if [ ! -d "$ext_dir" ]; then
|
||||
echo "ERROR: $ext_dir/ directory not found"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Firefox xpi is a zip with .xpi extension
|
||||
# Must include manifest.json at root
|
||||
cd "$ext_dir"
|
||||
zip -r "../$out_file" \
|
||||
manifest.json \
|
||||
background.js \
|
||||
popup/ \
|
||||
-x "*/.DS_Store" "*/Thumbs.db" "*/__MACOSX/*" "*/.git/*"
|
||||
cd ..
|
||||
|
||||
echo "==> Firefox extension: $out_file"
|
||||
}
|
||||
|
||||
# --- All extensions ---
|
||||
|
||||
build_extensions() {
|
||||
mkdir -p "$BUILD_DIR"
|
||||
build_chrome_extension
|
||||
build_firefox_extension
|
||||
echo "==> Extensions built."
|
||||
ls -lh "$BUILD_DIR"/verstak-bridge-*
|
||||
}
|
||||
|
||||
# --- Everything ---
|
||||
|
||||
build_all() {
|
||||
mkdir -p build
|
||||
mkdir -p "$BUILD_DIR"
|
||||
build_gui
|
||||
build_server
|
||||
echo "==> All binaries built."
|
||||
ls -lh build/
|
||||
build_chrome_extension
|
||||
build_firefox_extension
|
||||
echo ""
|
||||
echo "==> All builds complete."
|
||||
ls -lh "$BUILD_DIR/"
|
||||
}
|
||||
|
||||
# --- Main ---
|
||||
|
||||
case "${1:-all}" in
|
||||
gui) build_gui ;;
|
||||
server) build_server ;;
|
||||
all) build_all ;;
|
||||
gui) build_gui ;;
|
||||
server) build_server ;;
|
||||
extensions) build_extensions ;;
|
||||
chrome) mkdir -p "$BUILD_DIR"; build_chrome_extension ;;
|
||||
firefox) mkdir -p "$BUILD_DIR"; build_firefox_extension ;;
|
||||
all) build_all ;;
|
||||
*)
|
||||
echo "Usage: $0 [gui|server|all]"
|
||||
echo "Usage: $0 [gui|server|extensions|chrome|firefox|all]"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
|
|
|||
Loading…
Reference in New Issue