add setup.sh

This commit is contained in:
2025-10-17 14:35:49 +08:00
parent 4c4851b393
commit 2472f7bcf9

79
scripts/setup.sh Normal file
View File

@@ -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"