add setup.sh
This commit is contained in:
79
scripts/setup.sh
Normal file
79
scripts/setup.sh
Normal 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"
|
||||
Reference in New Issue
Block a user