From 2472f7bcf9628be333b47b74c87cb788db684a59 Mon Sep 17 00:00:00 2001 From: xuejiahao Date: Fri, 17 Oct 2025 14:35:49 +0800 Subject: [PATCH] add setup.sh --- scripts/setup.sh | 79 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 scripts/setup.sh diff --git a/scripts/setup.sh b/scripts/setup.sh new file mode 100644 index 0000000..02174d3 --- /dev/null +++ b/scripts/setup.sh @@ -0,0 +1,79 @@ +#!/bin/bash + +# Function to detect OS +get_os() { + case "$(uname -s)" in + Darwin) echo "macos" ;; + Linux) echo "linux" ;; + CYGWIN*|MINGW32*|MSYS*|MINGW*) echo "windows" ;; + *) echo "unknown" ;; + esac +} + +# 1. 提取当前目录名作为项目名 +OS=$(get_os) +if [ "$OS" = "windows" ]; then + # Windows (Git Bash or similar) + PROJECT_NAME=$(basename "$PWD") +else + # macOS/Linux + PROJECT_NAME=$(basename "$PWD") +fi + +echo "检测到的项目名: $PROJECT_NAME" + +# 2. 替换 package.json 中的 name,需要考虑跨平台兼容性 +if [ "$OS" = "windows" ]; then + # Windows: 使用 sed with backup and proper escapes + sed -i.bak "s/\"name\": \"[^\"]*\"/\"name\": \"$PROJECT_NAME\"/g" package.json && rm package.json.bak +else + # macOS/Linux: sed in-place + sed -i.bak "s/\"name\": \"[^\"]*\"/\"name\": \"$PROJECT_NAME\"/g" package.json && rm package.json.bak +fi + +# 3. 询问 kintone 域名、账号、密码 +echo "" +echo "请输入 kintone 上传配置 (按回车使用默认值):" + +read -p "域名 (默认: https://alicorn.cybozu.com): " base_url +base_url=${base_url:-"https://alicorn.cybozu.com"} + +read -p "用户名 (默认: maxz): " username +username=${username:-"maxz"} + +read -s -p "密码 (默认: 7ld7i8vd): " password +password=${password:-"7ld7i8vd"} +echo "" + +# 更新 package.json 中的 scripts.upload +AUTH_CMD="kintone-plugin-uploader --base-url $base_url --username $username --password $password dist/plugin.zip" +if [ "$OS" = "windows" ]; then + AUTH_CMD=$(echo "$AUTH_CMD" | sed 's/\$/$$/g') +fi + +# Escape special characters for sed +AUTH_CMD_ESC=$(echo "$AUTH_CMD" | sed 's/[\/&]/\\&/g') + +if [ "$OS" = "windows" ]; then + sed -i.bak "s/kintone-plugin-uploader.*dist\/plugin\.zip/$AUTH_CMD_ESC/g" package.json && rm package.json.bak +else + sed -i.bak "s/kintone-plugin-uploader.*dist\/plugin\.zip/$AUTH_CMD_ESC/g" package.json && rm package.json.bak +fi + +# 4. 删除自身 (可选,但推荐) +read -p "是否删除此脚本文件 (y/N): " delete_self +if [[ $delete_self =~ ^[Yy]$ ]]; then + rm "$0" + echo "脚本已删除" +fi + +# 5. 提醒用户下一步操作 +echo "" +echo "初始化完成!" +echo "" +echo "下一步操作:" +echo "1. 运行 'npm install' 来安装依赖" +echo "2. 修改 'src/manifest.json' 中的插件描述" +echo "3. 使用 'npm run build-upload' 构建并上传项目" +echo "" +echo "如需帮助,请查看 README.md"