#!/bin/bash set -e # 出错立即退出 # 1. 构建 MODE="$1" BUILD_CMD=(npm run build) if [[ "$MODE" == "obf" ]]; then BUILD_CMD=(npm run build:obf) echo "🏗️ 开始构建(启用混淆)..." else echo "🏗️ 开始构建(不启用混淆)..." fi if "${BUILD_CMD[@]}"; then echo "✅ 构建成功" echo else echo "❌ 构建失败,脚本终止" echo exit 1 fi # 2. 目标目录 PLUGIN_DIR=~/myweb/.obsidian/plugins/note2any FILES=("main.js" "styles.css" "manifest.json") # 3. 遍历文件,逐一备份并覆盖 for FILE in "${FILES[@]}"; do TARGET="$PLUGIN_DIR/$FILE" BACKUP="$PLUGIN_DIR/backup/$FILE.bk" if [ -f "$TARGET" ]; then mkdir -p "$(dirname "$BACKUP")" cp -f "$TARGET" "$BACKUP" echo "💾 已备份 $TARGET -> $BACKUP" fi if [ -f "$FILE" ]; then cp -f "$FILE" "$TARGET" echo "📂 已更新 $TARGET" else echo "⚠️ 源文件 $FILE 不存在,跳过" fi done # 4. 覆盖复制 assets 目录(静默) if [ -d "assets" ]; then mkdir -p "$PLUGIN_DIR/assets" rsync -a --delete assets/ "$PLUGIN_DIR/assets/" >/dev/null echo "🎨 已同步 assets -> $PLUGIN_DIR/assets/" echo else echo "⚠️ 源目录 assets 不存在,跳过" echo fi echo "✅ 部署完成!" echo