Newer
Older
reroad-test / 2020-ryusei / aframe-master / scripts / release.js
@ryusei ryusei on 22 Oct 2020 1 KB パノラマ表示
var execSync = require('child_process').execSync;
var fs = require('fs');
var glob = require('glob');
var pkg = require('../package.json');

var prevVersion = process.argv[2];
var nextVersion = process.argv[3];

if (!prevVersion || !nextVersion) {
  console.error('Error: you must pass in the old version and new version: ' +
                '(e.g., `node scripts/release.js 0.3.0 0.4.0`)');
  process.exit(1);
}

let distMin;
let distMax;
if (process.env.FOR_RELEASE) {
  distMin = pkg.scripts['dist:min'].replace(/-master/g, '');
  distMax = pkg.scripts['dist:max'].replace(/-master/g, '');
} else {
  distMin = pkg.scripts['dist:min'].replace(/master/g, `v${nextVersion}`);
  distMax = pkg.scripts['dist:max'].replace(/master/g, `v${nextVersion}`);
}

execSync(distMin, {stdio: 'inherit'});
execSync(distMax, {stdio: 'inherit'});

// Remove `aframe-v{prevVersion}.js`.
glob.sync(`dist/aframe*v${prevVersion}*`).forEach(fs.unlinkSync);

// Replace instances of version in documentation and README.
var versionRegex = new RegExp(`${prevVersion.replace(/\./g, '\\.')}`, 'g');
glob.sync('docs/**/*.md').forEach(updateDoc);
glob.sync('README.md').forEach(updateDoc);
function updateDoc (docFilename) {
  var contents = fs.readFileSync(docFilename, 'utf-8');
  if (versionRegex.exec(contents)) {
    contents = contents.replace(versionRegex, nextVersion);
    fs.writeFileSync(docFilename, contents);
  }
}