#!/bin/bash # ติดตั้ง (sideload) / ถอด Word add-in "e-Court Documents Versioning" บน macOS # เวอร์ชัน shell แบบส่งให้เครื่องทดสอบที่ไม่มี Node/repo — คู่หูของ # scripts/install-wordaddin.mjs (รันใน repo) และ scripts/install-wordaddin.ps1 (Windows) # กลไกเดียวกันทั้งสามไฟล์: โหลด manifest จาก server แล้ววางเป็น .manifest.xml # ใน ~/Library/Containers/com.microsoft.Word/Data/Documents/wef/ ของ Word # # ใช้: ./install-wordaddin.sh [--url ] [--remove] # --url default https://ecourt-note.chamomind.com/docedit/wordaddin/manifest.xml # --remove ถอดการติดตั้ง # --help | -h # # หลังลง/ถอดต้อง restart Word ทุกครั้ง · รายละเอียดเต็ม: docs/WORDADDIN-DEV.md set -euo pipefail PREFIX="[install-addin]" DEFAULT_URL="https://ecourt-note.chamomind.com/docedit/wordaddin/manifest.xml" WEF_DIR="$HOME/Library/Containers/com.microsoft.Word/Data/Documents/wef" usage() { cat < default ${DEFAULT_URL} --remove ถอดการติดตั้ง --help | -h EOF exit "${1:-1}" } fail() { echo "${PREFIX} ✗ $1" >&2 exit 1 } URL="$DEFAULT_URL" REMOVE=0 while [ $# -gt 0 ]; do case "$1" in --url) [ $# -ge 2 ] || usage; URL="$2"; shift 2 ;; --remove) REMOVE=1; shift ;; --help | -h) usage 0 ;; *) usage 1 ;; esac done [ "$(uname)" = "Darwin" ] || fail "สคริปต์นี้สำหรับ macOS — Windows ใช้ install-wordaddin.ps1" next_steps() { cat < My Add-ins > เปิด "e-Court Documents Versioning" 3. เปิดไฟล์ .docx ที่มี ticket ของ e-Court (ขอจากทีม) เพื่อเริ่มทดสอบ EOF } if [ "$REMOVE" = "1" ]; then echo "${PREFIX} platform: $(uname) · โหมดถอดการติดตั้ง" found=0 # บน Mac ไม่มี manifest เก็บแยกที่อื่น — หาทุก *.xml ใน wef ที่เป็นของ add-in # นี้จากชื่อในไฟล์เอง จึงไม่ต้อง hardcode GUID for file in "$WEF_DIR"/*.xml; do [ -f "$file" ] || continue if grep -q "e-Court Documents Versioning" "$file" && grep -q " (GUID) ใน manifest ไม่เจอจาก $URL" mkdir -p "$WEF_DIR" rm -f "$WEF_DIR/$GUID".* # ลบของรอบก่อน — idempotent ไม่มีไฟล์ GUID เดียวค้างสองชื่อ DEST="$WEF_DIR/$GUID.manifest.xml" cp "$TMP" "$DEST" echo "${PREFIX} ✓ วาง manifest ไว้ที่ $DEST" echo "${PREFIX} ✓ เสร็จ" next_steps