mirror of https://github.com/abpframework/abp
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.4 KiB
60 lines
1.4 KiB
const glob = require('glob');
|
|
var path = require('path');
|
|
const childProcess = require('child_process');
|
|
const execa = require('execa');
|
|
const fse = require('fs-extra');
|
|
const { program } = require('commander');
|
|
|
|
program.version('0.0.1');
|
|
program.option('-r, --rc', 'whether version is rc');
|
|
program.parse(process.argv);
|
|
|
|
const gulp = (folderPath) => {
|
|
if (
|
|
!fse.existsSync(folderPath + 'gulpfile.js') ||
|
|
!glob.sync(folderPath + '*.csproj').length
|
|
) {
|
|
return;
|
|
}
|
|
|
|
try {
|
|
execa.sync(`yarn`, ['install'], { cwd: folderPath, stdio: 'inherit' });
|
|
execa.sync(`yarn`, ['gulp'], { cwd: folderPath, stdio: 'inherit' });
|
|
} catch (error) {
|
|
console.log('\x1b[31m', 'Error: ' + error.message);
|
|
}
|
|
};
|
|
|
|
const updatePackages = (pkgJsonPath) => {
|
|
try {
|
|
const result = childProcess
|
|
.execSync(
|
|
`ncu "/^@abp.*$/" --packageFile ${pkgJsonPath} -u${
|
|
program.rc ? ' --greatest' : ''
|
|
}`
|
|
)
|
|
.toString();
|
|
console.log('\x1b[0m', result);
|
|
} catch (error) {
|
|
console.log('\x1b[31m', 'Error: ' + error.message);
|
|
}
|
|
};
|
|
|
|
console.time();
|
|
glob('../**/package.json', {}, (er, files) => {
|
|
files = files.filter(
|
|
(f) =>
|
|
f &&
|
|
!f.includes('node_modules') &&
|
|
!f.includes('wwwroot') &&
|
|
!f.includes('bin') &&
|
|
!f.includes('obj')
|
|
);
|
|
|
|
files.forEach((file) => {
|
|
updatePackages(file);
|
|
gulp(file.replace('package.json', ''));
|
|
});
|
|
console.timeEnd();
|
|
});
|