80 lines
2.4 KiB
Bash
80 lines
2.4 KiB
Bash
#!/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"
|