代码拉取完成,页面将自动刷新
同步操作将从 沉默小管/vueCms 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#!/bin/bash
git clone [email protected]:derekgo/vue-cms_xg.git
#退出窗口
function handleExitWindow(){
echo 按任意键退出
read -n 1
exit 1
}
#是否开启mysql
function handleIsOpenMysql(){
port=`netstat -nlt|grep 3306|wc -l`
process=`ps -ef |grep mysql|grep -v grep |wc -l`
if [ $port -eq 1 ] && [ $process -eq 2 ]
then
echo "MySQL开启"
else
echo "MySQL 没有开启,请开启Mysql"
handleExitWindow
fi
}
#是否开启redis
function handleIsOpenRedis(){
port=`netstat -nlt|grep 6379|wc -l`
process=`ps -ef |grep redis|grep -v grep |wc -l`
if [ $port -eq 1 ] && [ $process -eq 2 ]
then
echo "Redis 已开启!"
else
echo "Redis 没有开启,请开启Redis"
handleExitWindow
fi
}
#是否开启nginx
function handleIsOpenNginx(){
#检测nginx是否启动
netstat -nlpt | grep nginx &> /dev/null
if [ $? -eq 0 ];then
echo "nginx 已开启!"
else
echo "nginx 没有开启,请开启Redis"
handleExitWindow
fi
}
#cd ./node_nest/
#nest start --watch
#echo $?"---------"
#handleExitWindow
#输入检测mysql
function handleInputMysql(){
host=$1
user=$2
passwd=$3
mysqladmin -h $host -u $user -p $passwd ping &>/dev/null
[ $? -eq 0 ] && {
echo "Mysql连接成功"
} || {
echo "Mysql连接失败,请重新输入"
handleEditConfigFile
}
}
#输入检测redis
function handleInputRedis(){
redisIp=$1
redisPort=$2
redisPwd=$3
redis-cli -h $redisIp -p $redisPort -a $redisPwd
[ $? -eq 0 ] && {
echo "Redis连接成功"
} || {
echo "Redis连接失败,请重新输入"
handleEditConfigFile
}
}
#编辑写入配置文件
function handleEchoConfigFile(){
host=$1
user=$2
passwd=$3
redisIp=$4
redisPort=$5
redisPwd=$6
nestJsConfigFileUrl="./node_nest/src/utils/config.ts"
echo "import {DocumentBuilder, SwaggerModule} from '@nestjs/swagger';
//系统基础设置
export const sysBase = {
host:'$host',
port:3000
}
//jwt配置
export const jwtKey = {
secret: 'vueCms_xg',
expireTime:'10h'
};
//跨域配置
export const corsConfig = {
origin: '*',
optionsSuccessStatus: 200 // some legacy browsers (IE11, various SmartTVs) choke on 204
}
//mysql配置
export const handleMyConfig = ()=>{
let mysqlConfig:any = {
type: 'mysql',//数据库类型
host: '$host',//ip
port: 3306,//端口号
username: '$user',//账号
password: '$passwd',//密码
database: 'g_vuecms_xg',//数据库名
synchronize: true,//是否自动将实体类同步到数据库
retryDelay:500,//重试连接数据库间隙
retryAttempts:10,//重试连接数据库的次数
// entities: [__dirname+"/**/*.entity{.ts,.js}"],//实体文件
autoLoadEntities:true,//如果为true,将自动加载实体 forFeature()方法注册的每个实体都将自动添加到配置对象的实体
cache:false,//要启用缓存
logging:true,//开启日志
}
return mysqlConfig;
}
//redis配置
export const redisConfig = {
port: $redisPort,
host: '$redisIp',
password: '$redisPwd',
db: 0
}
export const uploadImgConfig = {
imgBaseUrl:"./public/uploads/img",//图片上传路径
artContentImgBaseUrl:"./public/uploads/artContentImg",//文章图片上传路径
}
//状态监控配置
export const statusMonitorConfig = {
pageTitle: '',
// 配置端口
port: 3000,
path: '/statusMonitor',
ignoreStartsWith: '/health/alive',
spans: [
{
interval: 1, // Every second
retention: 60, // Keep 60 datapoints in memory
},
{
interval: 5, // Every 5 seconds
retention: 60,
},
{
interval: 15, // Every 15 seconds
retention: 60,
},
],
chartVisibility: {
cpu: true,
mem: true,
load: true,
responseTime: true,
rps: true,
statusCodes: true,
},
healthChecks: [],
};
//swagger配置函数
export const handleBuildSwagger = (app)=>{
const config = new DocumentBuilder()
.addBearerAuth()
.setTitle('vueCms')
.setDescription('沉默小管')
.setVersion('1.0')
.addTag('vue')
.build();
const document = SwaggerModule.createDocument(app, config);
SwaggerModule.setup('sysApi', app, document,{
// 自定义样式
customCssUrl: '/css/swagger/theme-muted.css',
});
}
">$nestJsConfigFileUrl
}
#windows编辑配置文件
function handleWindowsEditConfigFile (){
read -p "请输入链接mysql的ip地址:" host
read -p "请输入链接mysql的账号:" user
read -p "请输入链接mysql的密码:" passwd
read -p "请输入链接redis的ip:" redisIp
read -p "请输入链接redis的端口号:" redisPort
read -p "请输入链接redis的密码:" redisPwd
handleEchoConfigFile $host $user $passwd $redisIp $redisPort $redisPwd
}
#centos系统编辑配置文件
function handleCentosEditConfigFile (){
read -p "请输入链接mysql的ip地址:" host
read -p "请输入链接mysql的账号:" user
read -p "请输入链接mysql的密码:" passwd
handleInputMysql $host $user $passwd
read -p "请输入链接redis的ip:" redisIp
read -p "请输入链接redis的端口号:" redisPort
read -p "请输入链接redis的密码:" redisPwd
handleInputRedis $redisIp $redisPort $redisPwd
handleEchoConfigFile $host $user $passwd $redisIp $redisPort $redisPwd
}
handleExitWindow
curSys=-1
#获取当前系统
function handleGetCurSys(){
if [ "$(uname)" == "Darwin" ]
then
return 1
# Mac OS X 操作系统
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]
then
return 2
# GNU/Linux操作系统
else [ "$(expr substr $(uname -s) 1 10)" == "MINGW32_NT" ]
return 3
# Windows NT操作系统
fi
}
handleGetCurSys
curSys=$?
if [ $curSys == 1 ]
then
echo "1"
elif [ $curSys == 2 ]
then
echo "2"
else [ $curSys == 3 ]
echo "3"
fi
handleExitWindow
#handleIsOpenNginx
#handleIsOpenRedis
#安装yarn
function handleInstallYarn(){
if ! type yarn >/dev/null 2>&1; then
echo 'yarn 未安装';
echo "安装yarn中..."
npm install yarn
[ $? -eq 0 ] && {
echo "安装yarn成功"
} || {
echo "安装yarn失败"
handleExitWindow
}
else
echo 'yarn 已安装';
fi
}
#判断是否安装node
function handleInstallNode(){
if ! type node >/dev/null 2>&1; then
echo 'node 未安装';
handleExitWindow
else
echo 'node 已安装';
fi
}
#前端文件路径
frontFileUrl="./vue3_vite/"
frontFile="./vue3_vite/package.json"
#后端文件路径
backFileUrl="./node_nest/"
backFile="./node_nest/package.json"
#判断文件是否存在 并创建
function handleCreateFile(){
fileUrl=$1 #文件夹路径
file=$2 #文件路径
#判断目录是否存在
[ ! -f "$file" ] && {
echo $file"文件不存在"
handleExitWindow
# 创建文件 echo "" > $1
} || {
echo $file"存在"
echo "安装依赖中..."
cd $fileUrl
yarn install
[ $? -eq 0 ] && {
echo "安装成功"
} || {
echo "安装失败"
handleExitWindow
}
}
}
#判断node和yarn是否安装
#判断是否安装node
handleInstallNode
#判断是否安装yarn
handleInstallYarn
#判断前后端package.json文件是否存在,并安装依赖
# handleCreateFile $frontFileUrl $frontFile
# handleCreateFile $backFileUrl $backFile
#判断数据库是否安装,是否能正常运行程序
# $frontFile/xx.sh
#获取上一条执行完后的状态码
# exit $?
#if [ -f "item001/001.txt" ];then
# echo "存在"
#else
# echo "不存在"
#fi
#cd ./item001
#exec yarn install
#判断上一条命令是否执行成功
#if [ $? -eq 0 ]; then
# echo "成功"
#else
# echo "失败"
#fi
# 使用read命令达到类似bat中的pause命令效果
#echo "按任意键继续"
#read -n 1
#echo "继续运行"
#read num
#[[]]支持正则表达式
#[[ $num =~ [1-3] ]]
#退出
#[ "$num" -eq 3 ] && {
# echo "退出"
# exit 3
#}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。