deploy: current vibn theia state
Made-with: Cursor
This commit is contained in:
83
scripts/check-publish.js
Normal file
83
scripts/check-publish.js
Normal file
@@ -0,0 +1,83 @@
|
||||
// *****************************************************************************
|
||||
// Copyright (C) 2019 TypeFox and others
|
||||
//
|
||||
// This program and the accompanying materials are made available under the
|
||||
// terms of the Eclipse Public License v. 2.0 which is available at
|
||||
// http://www.eclipse.org/legal/epl-2.0.
|
||||
//
|
||||
// This Source Code may also be made available under the following Secondary
|
||||
// Licenses when the conditions for such availability set forth in the Eclipse
|
||||
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
||||
// with the GNU Classpath Exception which is available at
|
||||
// https://www.gnu.org/software/classpath/license.html.
|
||||
//
|
||||
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
||||
// *****************************************************************************
|
||||
// @ts-check
|
||||
|
||||
const path = require('path');
|
||||
const chalk = require('chalk').default;
|
||||
const cp = require('child_process');
|
||||
const fs = require('fs');
|
||||
|
||||
const distTag = process.argv[2];
|
||||
|
||||
checkPublish(distTag).catch(error => {
|
||||
console.error(error);
|
||||
process.exitCode = 1;
|
||||
});
|
||||
|
||||
async function checkPublish(distTag) {
|
||||
const workspaces = JSON.parse(cp.execSync('npx lerna ls --json --loglevel=silent').toString());
|
||||
const lernaPath = path.resolve('lerna.json');
|
||||
const newVersion = JSON.parse(await fs.promises.readFile(lernaPath, 'utf8')).version;
|
||||
|
||||
await Promise.all(workspaces.map(async workspace => {
|
||||
const packagePath = path.resolve(workspace.location, 'package.json');
|
||||
const pck = JSON.parse(await fs.promises.readFile(packagePath, 'utf8'));
|
||||
|
||||
if (!pck.private) {
|
||||
let pckName;
|
||||
let npmViewOutput;
|
||||
|
||||
if (distTag === 'next') {
|
||||
pckName = `${pck.name}@next`;
|
||||
npmViewOutput = await new Promise(
|
||||
resolve => cp.exec(`npm view ${pckName} version`,
|
||||
(error, stdout, stderr) => {
|
||||
if (error) {
|
||||
console.error(error);
|
||||
resolve('');
|
||||
} else {
|
||||
// update pckName print to the actual next version below
|
||||
pckName = `${pck.name}@${stdout.trim()}`;
|
||||
resolve(pckName);
|
||||
}
|
||||
}
|
||||
)
|
||||
);
|
||||
} else {
|
||||
pckName = `${pck.name}@${newVersion}`
|
||||
npmViewOutput = await new Promise(
|
||||
resolve => cp.exec(`npm view ${pckName} version`,
|
||||
(error, stdout, stderr) => {
|
||||
if (error) {
|
||||
console.error(error);
|
||||
resolve('');
|
||||
} else {
|
||||
resolve(stdout.trim());
|
||||
}
|
||||
}
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
if (npmViewOutput) {
|
||||
console.info(`${pckName}: published`);
|
||||
} else {
|
||||
console.error(`(${chalk.red('ERR')}) ${pckName}: ${chalk.red('NOT')} published`);
|
||||
process.exitCode = 1;
|
||||
}
|
||||
}
|
||||
}));
|
||||
}
|
||||
Reference in New Issue
Block a user