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