From f6c61c32e32637826f047a0f323c4fa00282fad7 Mon Sep 17 00:00:00 2001 From: mirivlad Date: Sat, 6 Jun 2026 19:15:24 +0800 Subject: [PATCH] =?UTF-8?q?build:=20=D1=83=D0=BF=D0=B0=D0=BA=D0=BE=D0=B2?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=80=D0=B0=D1=81=D1=88=D0=B8=D1=80=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B9=20=D0=B2=20scripts/build.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- scripts/build.sh | 105 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 93 insertions(+), 12 deletions(-) diff --git a/scripts/build.sh b/scripts/build.sh index 0168a6e..6660b1a 100755 --- a/scripts/build.sh +++ b/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