2025-02-01 17:28:11 +08:00
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
# 获取当前目录路径
|
|
|
|
|
EXT_DIR=$(cd "$(dirname "$0")" && pwd)
|
|
|
|
|
|
|
|
|
|
# 生成 YYYY.MM.DD.HH.MM 格式的时间戳
|
2025-02-05 07:51:50 +08:00
|
|
|
|
VERSION=$(date +%y.%-m%d.1%H%M)
|
2025-02-05 01:07:37 +08:00
|
|
|
|
|
2025-02-01 17:28:11 +08:00
|
|
|
|
|
|
|
|
|
# 颜色输出
|
|
|
|
|
GREEN='\033[0;32m'
|
|
|
|
|
RED='\033[0;31m'
|
|
|
|
|
NC='\033[0m' # 无颜色
|
|
|
|
|
|
|
|
|
|
# 选择浏览器类型
|
|
|
|
|
echo "请选择要打包的插件类型:"
|
|
|
|
|
echo "0) 全部打包"
|
|
|
|
|
echo "1) Chrome"
|
|
|
|
|
echo "2) Firefox"
|
|
|
|
|
echo "3) Edge"
|
|
|
|
|
echo "9) 删除打包文件"
|
2025-02-01 23:57:42 +08:00
|
|
|
|
read -p "输入选项: " BROWSER_CHOICE
|
2025-02-01 17:28:11 +08:00
|
|
|
|
|
|
|
|
|
# 定义打包函数
|
|
|
|
|
pack_extension() {
|
|
|
|
|
local BROWSER_NAME=$1
|
|
|
|
|
local MANIFEST_FILE=$2
|
|
|
|
|
local ZIP_NAME="extension_${BROWSER_NAME}.zip"
|
|
|
|
|
|
|
|
|
|
echo "🔹 正在打包 ${BROWSER_NAME} 插件..."
|
|
|
|
|
cp "$EXT_DIR/$MANIFEST_FILE" "$EXT_DIR/manifest.json"
|
|
|
|
|
|
|
|
|
|
# 确保 manifest.json 存在
|
|
|
|
|
if [ ! -f "$EXT_DIR/manifest.json" ]; then
|
|
|
|
|
echo -e "${RED}❌ 错误: manifest.json 未找到!${NC}"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# 更新 manifest.json 的 version
|
|
|
|
|
sed -i '' "s/\"version\": *\"[0-9\.]*\"/\"version\": \"$VERSION\"/" "$EXT_DIR/manifest.json"
|
|
|
|
|
|
|
|
|
|
# 开始打包 ZIP(排除不必要文件)
|
2025-04-28 13:22:30 +08:00
|
|
|
|
zip -r "$ZIP_NAME" . -x "*.zip" "node_modules/*" ".git/*" ".DS_Store" ".github/*" ".vscode/*" "..idea/*" ".cache/*" "doc/*" ".gitignore" "pack_extension.sh"
|
2025-02-01 17:28:11 +08:00
|
|
|
|
|
|
|
|
|
# 结果输出
|
|
|
|
|
if [ -f "$ZIP_NAME" ]; then
|
|
|
|
|
echo -e "${GREEN}✅ ${BROWSER_NAME} 插件打包成功!文件名: $ZIP_NAME 版本号: $VERSION${NC}"
|
|
|
|
|
else
|
|
|
|
|
echo -e "${RED}❌ ${BROWSER_NAME} 插件打包失败!${NC}"
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
delete_zip_file() {
|
|
|
|
|
rm extension_Chrome.zip extension_Edge.zip extension_Firefox.zip manifest.json
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# 根据用户选择执行打包
|
|
|
|
|
case $BROWSER_CHOICE in
|
|
|
|
|
0)
|
|
|
|
|
echo "🔄 开始打包所有浏览器插件..."
|
|
|
|
|
pack_extension "Chrome" "manifest-chrome.json"
|
|
|
|
|
pack_extension "Firefox" "manifest-firefox.json"
|
|
|
|
|
pack_extension "Edge" "manifest-edge.json"
|
|
|
|
|
;;
|
|
|
|
|
1)
|
|
|
|
|
pack_extension "Chrome" "manifest-chrome.json"
|
|
|
|
|
;;
|
|
|
|
|
2)
|
|
|
|
|
pack_extension "Firefox" "manifest-firefox.json"
|
|
|
|
|
;;
|
|
|
|
|
3)
|
|
|
|
|
pack_extension "Edge" "manifest-edge.json"
|
|
|
|
|
;;
|
|
|
|
|
9)
|
|
|
|
|
delete_zip_file
|
2025-04-28 13:22:30 +08:00
|
|
|
|
;;
|
2025-02-01 17:28:11 +08:00
|
|
|
|
*)
|
2025-02-01 23:57:42 +08:00
|
|
|
|
echo -e "${RED}❌ 无效的选项!请重新运行脚本并输入。${NC}"
|
2025-02-01 17:28:11 +08:00
|
|
|
|
exit 1
|
|
|
|
|
;;
|
|
|
|
|
esac
|