mirror of
https://github.com/142vip/408CSFamily.git
synced 2026-02-03 02:23:38 +08:00
feat: 修正脚本异常
This commit is contained in:
@@ -22,9 +22,9 @@
|
||||
"deploy:ali": "bash scripts/deploy.sh ali $npm_package_version",
|
||||
"deploy:github": "bash scripts/deploy.sh github $npm_package_version",
|
||||
"deploy:vercel": "vercel --prod",
|
||||
"release": "bumpp --preid alpha --execute=\"pnpm commit-and-tag-version && git add CHANGELOG.md\" --commit \"chore(release): publish v%s\" --all --tag --push",
|
||||
"lint": "eslint --ext .js,.vue,.ts --ignore-path .gitignore .",
|
||||
"lintfix": "eslint --fix --ext .js,.ts,.vue --ignore-path .gitignore .",
|
||||
"release": "./scripts/release",
|
||||
"lint": "./scripts/lint",
|
||||
"lintfix": "./scripts/lint --fix",
|
||||
"clean": "find . -name \"node_modules\" -type d -exec rm -rf '{}' + "
|
||||
},
|
||||
"scripts-info": {
|
||||
|
||||
@@ -16,27 +16,6 @@ process.on('exit', () => {
|
||||
exit()
|
||||
})
|
||||
|
||||
async function syncExec(command){
|
||||
let size=100
|
||||
let count = 0;
|
||||
const intervalId = setInterval(async () => {
|
||||
console.log('执行中'+'.'.repeat(count),size,count);
|
||||
count++;
|
||||
size = await new Promise((resolve,reject)=>{
|
||||
exec(command,(code)=>{
|
||||
console.log(code)
|
||||
console.log('Exit code:', code);
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
console.log(size)
|
||||
if (count > size) {
|
||||
clearInterval(intervalId); // 停止打印
|
||||
}
|
||||
}, 1000);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行shell指令
|
||||
* @param commands
|
||||
@@ -55,11 +34,11 @@ exports.execShell = async commands => {
|
||||
for (let index=0;index<runCommands.length;index++) {
|
||||
const command=runCommands[index]
|
||||
const count=index+1
|
||||
console.log(`>>>command--${count}:\n ${command} \n<<<command--${count}--start === \n`)
|
||||
console.log(`>>>command(${count}):\n${command} \n<<<command(${count})--start === \n`)
|
||||
// await syncExec(command)
|
||||
const execResult=await exec(command)
|
||||
|
||||
console.log(`<<<command--${count}--ending === `)
|
||||
console.log(`\n<<<command(${count})--ending === `)
|
||||
// 指令异常,不执行后续指令
|
||||
if(execResult.code!==0){
|
||||
break;
|
||||
|
||||
203
scripts/docker
Executable file
203
scripts/docker
Executable file
@@ -0,0 +1,203 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
/**
|
||||
*
|
||||
* 例如:
|
||||
* - ./scripts/network create
|
||||
* - ./scripts/network inspect
|
||||
* - ./scripts/network rm
|
||||
* - ./scripts/network ls
|
||||
*/
|
||||
const { execShell, BaseSetting} = require("./.exec");
|
||||
const scriptName=process.argv[2];
|
||||
|
||||
|
||||
/**
|
||||
* 网络基础信息
|
||||
* - 网络名称
|
||||
* - 子网掩码
|
||||
* - 网关地址
|
||||
*/
|
||||
const dockerNetworkInfo={
|
||||
defaultName:'service_env_net',
|
||||
subnet:'172.30.0.0/24',
|
||||
gateway:'172.30.0.1',
|
||||
}
|
||||
|
||||
const SupportScriptsInContainer={
|
||||
run:'',
|
||||
rm:'',
|
||||
ps:'docker ps'
|
||||
}
|
||||
|
||||
function getContainerCommand(){
|
||||
const scriptName=process.argv[3];
|
||||
if(scriptName==='rm')
|
||||
return SupportScriptsInContainer.rm
|
||||
if(scriptName==='run')
|
||||
return SupportScriptsInContainer.run
|
||||
if(scriptName==='ps')
|
||||
return SupportScriptsInContainer.ps
|
||||
return SupportScriptsInContainer.run
|
||||
}
|
||||
|
||||
|
||||
|
||||
const SupportScriptsInImage={
|
||||
rm:'docker rmi **',
|
||||
ps:'docker images'
|
||||
}
|
||||
|
||||
function getContainerCommand(){
|
||||
const scriptName=process.argv[3];
|
||||
if(scriptName==='rm')
|
||||
return SupportScriptsInContainer.rm
|
||||
if(scriptName==='run')
|
||||
return SupportScriptsInContainer.run
|
||||
if(scriptName==='ps')
|
||||
return SupportScriptsInContainer.ps
|
||||
return SupportScriptsInContainer.run
|
||||
}
|
||||
|
||||
const SupportScriptsInNetWork={
|
||||
ls:'docker network ls',
|
||||
create:[
|
||||
// 创建网关
|
||||
`
|
||||
docker network create \
|
||||
--subnet=${dockerNetworkInfo.subnet} \
|
||||
--gateway=${dockerNetworkInfo.gateway} \
|
||||
${dockerNetworkInfo.defaultName}
|
||||
`,
|
||||
// 查看创建后基本信息
|
||||
`
|
||||
docker network inspect ${dockerNetworkInfo.defaultName}
|
||||
`
|
||||
],
|
||||
rm:[
|
||||
// 参数校验
|
||||
`
|
||||
if test -z "${dockerNetworkInfo.defaultName}";then
|
||||
echo "参数错误 网络名称不能为空。脚本执行eg: bash xxx.sh rm 网络名称"
|
||||
exit 1;
|
||||
fi
|
||||
`,
|
||||
// 判断网络是否存在
|
||||
`
|
||||
docker network ls | grep -w "${dockerNetworkInfo.defaultName}"
|
||||
if [ $? -eq 1 ] ;then
|
||||
echo "容器网络:${dockerNetworkInfo.defaultName} 不存在,删除无效"
|
||||
exit 1;
|
||||
fi
|
||||
`,
|
||||
// 删除网络
|
||||
`
|
||||
docker network rm "${dockerNetworkInfo.defaultName}"
|
||||
`
|
||||
],
|
||||
inspect:
|
||||
`
|
||||
docker network inspect ${dockerNetworkInfo.defaultName}
|
||||
`
|
||||
}
|
||||
|
||||
function getNetworkCommand(){
|
||||
const scriptName=process.argv[3];
|
||||
|
||||
if(SupportScriptsInNetWork.hasOwnProperty(scriptName)){
|
||||
return SupportScriptsInNetWork[scriptName]
|
||||
}
|
||||
if(scriptName==='ls')
|
||||
return SupportScriptsInNetWork.ls
|
||||
if(scriptName==='run')
|
||||
return SupportScriptsInNetWork.create
|
||||
if(scriptName==='ps')
|
||||
return SupportScriptsInNetWork.rm
|
||||
if(scriptName==='inspect')
|
||||
return SupportScriptsInNetWork.inspect
|
||||
}
|
||||
|
||||
|
||||
// 支持的命令
|
||||
const SupportScripts={
|
||||
ls:'docker network ls',
|
||||
create:[
|
||||
// 创建网关
|
||||
`
|
||||
docker network create \
|
||||
--subnet=${dockerNetworkInfo.subnet} \
|
||||
--gateway=${dockerNetworkInfo.gateway} \
|
||||
${dockerNetworkInfo.defaultName}
|
||||
`,
|
||||
// 查看创建后基本信息
|
||||
`
|
||||
docker network inspect ${dockerNetworkInfo.defaultName}
|
||||
`
|
||||
],
|
||||
rm:[
|
||||
// 参数校验
|
||||
`
|
||||
if test -z "${dockerNetworkInfo.defaultName}";then
|
||||
echo "参数错误 网络名称不能为空。脚本执行eg: bash xxx.sh rm 网络名称"
|
||||
exit 1;
|
||||
fi
|
||||
`,
|
||||
// 判断网络是否存在
|
||||
`
|
||||
docker network ls | grep -w "${dockerNetworkInfo.defaultName}"
|
||||
if [ $? -eq 1 ] ;then
|
||||
echo "容器网络:${dockerNetworkInfo.defaultName} 不存在,删除无效"
|
||||
exit 1;
|
||||
fi
|
||||
`,
|
||||
// 删除网络
|
||||
`
|
||||
docker network rm "${dockerNetworkInfo.defaultName}"
|
||||
`
|
||||
],
|
||||
inspect:
|
||||
`
|
||||
docker network inspect ${dockerNetworkInfo.defaultName}
|
||||
`
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取需要执行的shell命令
|
||||
* @param scriptName
|
||||
* @returns {string}
|
||||
*/
|
||||
function getCommand(scriptName){
|
||||
let deployCommand=SupportScripts.ls
|
||||
|
||||
switch (scriptName) {
|
||||
case 'container':
|
||||
return getContainerCommand();
|
||||
case 'network':
|
||||
break;
|
||||
case 'image':
|
||||
break;
|
||||
}
|
||||
|
||||
if(scriptName==='ls'){
|
||||
deployCommand=SupportScripts.ls
|
||||
}
|
||||
|
||||
// 部署到Github
|
||||
if(scriptName==='rm'){
|
||||
deployCommand=SupportScripts.rm
|
||||
}
|
||||
if(scriptName==='create'){
|
||||
deployCommand=SupportScripts.create
|
||||
}
|
||||
if(scriptName==='inspect'){
|
||||
deployCommand=SupportScripts.inspect
|
||||
}
|
||||
return deployCommand
|
||||
}
|
||||
|
||||
|
||||
// 执行
|
||||
;(async ()=>{
|
||||
const command=getCommand(scriptName)
|
||||
await execShell(command)
|
||||
})()
|
||||
16
scripts/lint
16
scripts/lint
@@ -1,14 +1,10 @@
|
||||
#!/usr/bin/env node
|
||||
/**
|
||||
*
|
||||
* 将应用程序打包成可部署的包、文件、镜像
|
||||
* 格式化代码
|
||||
* 例如:
|
||||
* - ./scripts/bundle build 基础部署打包
|
||||
* - ./scripts/bundle build_proxy 用于三方平台部署打包
|
||||
* - ./scripts/bundle image 构建容器镜像
|
||||
* - ./scripts/bundle image_faster 本地build,快速构建容器镜像
|
||||
* - ./scripts/bundle xxx 其他参数,默认执行build命令
|
||||
* - ./scripts/bundle 交互式选择执行的命令
|
||||
* - ./scripts/lint
|
||||
* - ./scripts/lint --fix
|
||||
*/
|
||||
|
||||
const { execShell } = require("./.exec");
|
||||
@@ -20,8 +16,4 @@ if(scriptName!=null){
|
||||
fixed='--fix'
|
||||
}
|
||||
|
||||
;(async ()=>{
|
||||
const scriptCommand= `eslint ${fixed} --ext .js,.ts,.vue --ignore-path .gitignore .`
|
||||
// 执行
|
||||
await execShell(scriptCommand)
|
||||
})()
|
||||
;(async ()=>await execShell(`eslint ${fixed} --ext .js,.ts,.vue --ignore-path .gitignore .`))()
|
||||
@@ -1,99 +0,0 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
/**
|
||||
*
|
||||
* 例如:
|
||||
* - ./scripts/network create
|
||||
* - ./scripts/network inspect
|
||||
* - ./scripts/network rm
|
||||
*/
|
||||
const { execShell, BaseSetting} = require("./.exec");
|
||||
const scriptName=process.argv[2];
|
||||
|
||||
|
||||
/**
|
||||
* 网络基础信息
|
||||
* - 网络名称
|
||||
* - 子网掩码
|
||||
* - 网关地址
|
||||
*/
|
||||
const dockerNetworkInfo={
|
||||
defaultName:'service_env_net',
|
||||
subnet:'172.30.0.0/24',
|
||||
gateway:'172.30.0.1',
|
||||
}
|
||||
|
||||
// 支持的命令
|
||||
const SupportScripts={
|
||||
ls:'docker network ls',
|
||||
create:[
|
||||
// 创建网关
|
||||
`
|
||||
docker network create
|
||||
--subnet=${dockerNetworkInfo.subnet}
|
||||
--gateway=${dockerNetworkInfo.gateway}
|
||||
${dockerNetworkInfo.defaultName}
|
||||
`,
|
||||
// 查看创建后基本信息
|
||||
`
|
||||
docker network inspect ${dockerNetworkInfo.defaultName}
|
||||
`
|
||||
].join(' && '),
|
||||
rm:[
|
||||
// 参数校验
|
||||
`
|
||||
if test -z "${dockerNetworkInfo.defaultName}";then
|
||||
echo "参数错误 网络名称不能为空。脚本执行eg: bash xxx.sh rm 网络名称"
|
||||
fi
|
||||
`,
|
||||
// 判断网络是否存在
|
||||
`
|
||||
docker network ls | grep -w "${dockerNetworkInfo.defaultName}"
|
||||
if [ $? -eq 1 ] ;then
|
||||
echo "容器网络:${dockerNetworkInfo.defaultName} 不存在,删除无效"
|
||||
exit 0;
|
||||
fi
|
||||
`,
|
||||
// 删除网络
|
||||
`
|
||||
docker network rm "${dockerNetworkInfo.defaultName}"
|
||||
`
|
||||
].join(''),
|
||||
inspect:
|
||||
`
|
||||
docker network inspect ${dockerNetworkInfo.defaultName}
|
||||
`
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取需要执行的shell命令
|
||||
* @param scriptName
|
||||
* @returns {string}
|
||||
*/
|
||||
function getCommand(scriptName){
|
||||
let deployCommand=SupportScripts.ls
|
||||
|
||||
// 部署到阿里云服务器
|
||||
if(scriptName==='ls'){
|
||||
deployCommand=SupportScripts.ls
|
||||
}
|
||||
|
||||
// 部署到Github
|
||||
if(scriptName==='rm'){
|
||||
deployCommand=SupportScripts.rm
|
||||
}
|
||||
if(scriptName==='create'){
|
||||
deployCommand=SupportScripts.create
|
||||
}
|
||||
if(scriptName==='inspect'){
|
||||
deployCommand=SupportScripts.inspect
|
||||
}
|
||||
return deployCommand
|
||||
}
|
||||
|
||||
|
||||
// 执行
|
||||
;(async ()=>{
|
||||
const command=getCommand(scriptName)
|
||||
await execShell(command)
|
||||
})()
|
||||
@@ -13,15 +13,4 @@ const generateChangeLog='pnpm commit-and-tag-version && git add CHANGELOG.md'
|
||||
// git提交信息
|
||||
const commitInfo='chore(release): publish v%s'
|
||||
|
||||
const releaseCommands=
|
||||
"bumpp " +
|
||||
"--preid alpha "+
|
||||
`--execute= "${generateChangeLog}" `+
|
||||
`--commit "${commitInfo}" `+
|
||||
"--all "+
|
||||
"--tag "+
|
||||
"--push "
|
||||
|
||||
;(async ()=>{
|
||||
await execShell(releaseCommands)
|
||||
})()
|
||||
;(async ()=>await execShell(`bumpp --preid alpha --execute="${generateChangeLog}" --commit "${commitInfo}" --all --tag --push`))()
|
||||
Reference in New Issue
Block a user