#!/bin/bash
## 权限问题,用 chmod u+x *.sh
## eg:
## cd /mobileproject/$1/XcxProject hivui create $1
if [ $# -gt 4 ] ; then
echo "$3 操作命令有误,请重新输入!"
exit 1
fi
# basePath='/opt/eap5/desktop'
basePath='/eap5.0/desktop'
tagPath=$basePath'/preview'
# tmpPath=$basePath'/project-template'
tmpPath='/eap5.0/hiruntime/project/desktop/project-template'
gitTmp='/eap5.0/hiruntime/project/desktop/__gittmp'
workName=$1
projectName=$2
oper=$3
uploadPath=$4
syncWay=$4
## aaa=$(pm2 id "vite-${workName}-${projectName}")
## [] 说明服务有启动但是,没有执行
## if [ ${#aaa} = 2 ] ; then
## echo "==================="
## fi
## 参数 工号$1 项目名$2 端口$3
## 工号=工作空间
## 1、判断工作空间 没有就创建
if [ ! -d "${tagPath}/${workName}" ];then
echo "${oper} 命令: 工作空间不存在!"
exit 1
fi
## 2、判断项目名
# if [ ! -d "${tagPath}/${workName}/${projectName}" ];then
# echo "${oper} 命令: 项目名不存在!"
# exit 1
# fi
## 返回预览目录
# cd ${tagPath}/${workName}/${projectName}/deploy
if [ $3 = "restart" ] ; then
### 用pm2管理,用pm2 重启指定的
pm2 restart "vite-${workName}-${projectName}"
#yarn run pm2:restart vite-${workName}-${projectName}
fi
if [ $3 = "start" ] ; then
pm2 delete "vite-${workName}-${projectName}"
### 用pm2管理,用pm2 重启指定的
cd ${tagPath}/${workName}/${projectName}/deploy
yarn run pm2:start
fi
if [ $oper = "kill" ] ; then
### 用pm2管理,用pm2 重启指定的
pm2 delete "vite-${workName}-${projectName}"
#yarn run pm2:kill vite-${workName}-${projectName}
fi
if [ $oper = "stop" ] ; then
### 用pm2管理,用pm2 重启指定的
pm2 stop "vite-${workName}-${projectName}"
#yarn run pm2:stop vite-${workName}-${projectName}
fi
if [ $oper = "del" ] ; then
if [ $workName = "admin" -a $projectName = "systpl" ] ; then
echo "系统模板,不可删除!"
exit 1
fi
curPid=`pm2 pid vite-${workName}-${projectName}`
if [ ! -z "$curPid" ];then
echo "vite-${workName}-${projectName} 服务正在关闭!"
pm2 delete "vite-${workName}-${projectName}"
fi
### 删除用户项目
cd "${tagPath}/${workName}"
rm -r -f "${projectName}"
echo "vite-${workName}-${projectName} 删除成功!"
fi
if [ $oper = "build" ] ; then
### 用pm2管理,用pm2 重启指定的
cd "${tagPath}/${workName}/${projectName}/deploy"
npm run build
#yarn run pm2:stop vite-${workName}-${projectName}
cd "${tagPath}/${workName}/${projectName}/deploy/"
zip -q -r "${workName}_${projectName}_dist.zip" ./dist
if [[ ! -d "$uploadPath" ]]; then
echo "${oper} 命令: 上传文件夹不存在, 正在帮您创建目录..."
mkdir -p "${uploadPath}"
fi
cp -f "${workName}_${projectName}_dist.zip" "${uploadPath}"
# echo "(‐^▽^‐) 恭喜您 ${oper} 命令,很顺利的执行完毕!"
fi
if [ $oper = "sync" ] ; then
git clone http://192.168.4.105:8080/gitbucket/git/08335/hivui-platform-template.git "${gitTmp}"
echo ${gitTmp}
echo ${tmpPath}
rsync -auz "${gitTmp}/" ${tmpPath}
rm -rf ${gitTmp}
if [ $syncWay = "login" ] ; then
echo "正在同步login模块..."
rsync -auz ${tmpPath}/project/hivuiLogin ${tagPath}/${workName}/${projectName}/deploy/${projectName}/
cd ${tagPath}/${workName}/${projectName}/deploy/${projectName}/hivuiLogin
sed -i 's/<\/head>/'"${source[*]}"'<\/head>/g' index.html
echo "login已同步!"
fi
if [ $syncWay = "main" ] ; then
echo "正在同步main模块..."
rsync -auz ${tmpPath}/project/hivuiMain ${tagPath}/${workName}/${projectName}/deploy/${projectName}/
cd ${tagPath}/${workName}/${projectName}/deploy/${projectName}/hivuiMain
sed -i 's/<\/head>/'"${source[*]}"'<\/head>/g' index.html
echo "main已同步!"
fi
if [ $syncWay = "assets" ] ; then
echo "正在同步assets_platform资源..."
rsync -auz ${tmpPath}/assets_platform ${tagPath}/${workName}/${projectName}/deploy/
echo "assets_platform资源已同步!"
fi
if [ $syncWay = "hiui" ] ; then
echo "正在同步hi-ui库..."
cd "${tmpPath}/"
npm i hi-ui@latest -S
rsync -auz ${tmpPath}/node_modules/hi-ui ${tagPath}/${workName}/${projectName}/deploy/node_modules/
rsync -auz ${tmpPath}/package.json ${tagPath}/${workName}/${projectName}/deploy/package.json
echo "hiui已同步!"
fi
if [ $syncWay = "task" ] ; then
echo "正在同步hi-taskcenter库..."
cd "${tmpPath}/"
npm i hi-taskcenter@latest -S
rsync -auz ${tmpPath}/node_modules/hi-ui ${tagPath}/${workName}/${projectName}/deploy/node_modules/
rsync -auz ${tmpPath}/package.json ${tagPath}/${workName}/${projectName}/deploy/package.json
echo "hi-taskcenter已同步!"
fi
if [ $syncWay = "mod" ] ; then
echo "正在同步node_modules环境..."
cd "${tmpPath}/"
npm i
rsync -auz ${tmpPath}/node_modules ${tagPath}/${workName}/${projectName}/deploy/
rsync -auz ${tmpPath}/package.json ${tagPath}/${workName}/${projectName}/deploy/package.json
echo "node_modules已同步!"
fi
if [ $syncWay = "all" ] ; then
echo "all"
fi
fi