1
0
mirror of https://github.com/142vip/408CSFamily.git synced 2026-02-03 02:23:38 +08:00

feat: 修正脚本异常

This commit is contained in:
chu fan
2023-09-06 19:24:23 +08:00
parent a7820c499a
commit c003e11b80
6 changed files with 213 additions and 149 deletions

View File

@@ -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": {

View File

@@ -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
View 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)
})()

View File

@@ -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 .`))()

View File

@@ -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)
})()

View File

@@ -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`))()