Files
2025-10-17 14:35:49 +08:00

80 lines
2.4 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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"