51 lines
1.1 KiB
Bash
Executable File
51 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e # 出错立即退出
|
|
|
|
# 1. 构建
|
|
echo "🏗️ 开始构建..."
|
|
if npm run build; then
|
|
echo "✅ 构建成功"
|
|
echo
|
|
else
|
|
echo "❌ 构建失败,脚本终止"
|
|
echo
|
|
exit 1
|
|
fi
|
|
|
|
# 2. 目标目录
|
|
PLUGIN_DIR=~/myweb/.obsidian/plugins/note-to-mp
|
|
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
|