BetterDiscordApp-v2/scripts/package-release.js

66 lines
2.3 KiB
JavaScript

const fs = require('fs');
const path = require('path');
const archiver = require('archiver');
const releasepkg = require('../release/package.json');
const mainpkg = require('../package.json');
const corepkg = require('../core/package.json');
const clientpkg = require('../client/package.json');
const editorpkg = require('../csseditor/package.json');
// core.zip
const core = new Promise((resolve, reject) => {
const core_zip = archiver('zip');
core_zip.file('./release/package.json', {name: 'package.json'});
core_zip.file('./release/index.js', {name: 'index.js'});
core_zip.file(`./release/core.${corepkg.version}.js`, {name: `core.${corepkg.version}.js`});
core_zip.file('./release/sparkplug.js', {name: 'sparkplug.js'});
core_zip.directory('./release/modules', 'modules');
core_zip.directory('./release/node_modules', 'node_modules');
const core_zip_stream = fs.createWriteStream('./release/core.zip');
core_zip.pipe(core_zip_stream);
core_zip.on('end', resolve);
core_zip.on('error', reject);
core_zip.finalize();
});
// client.zip
const client = new Promise((resolve, reject) => {
const client_zip = archiver('zip');
client_zip.file(`./release/client.${clientpkg.version}.js`, {name: `client.${clientpkg.version}.js`});
const client_zip_stream = fs.createWriteStream('./release/client.zip');
client_zip.pipe(client_zip_stream);
client_zip.on('end', resolve);
client_zip.on('error', reject);
client_zip.finalize();
});
// csseditor.zip
const csseditor = new Promise((resolve, reject) => {
const csseditor_zip = archiver('zip');
csseditor_zip.directory('./release/csseditor', 'csseditor');
const csseditor_zip_stream = fs.createWriteStream('./release/csseditor.zip');
csseditor_zip.pipe(csseditor_zip_stream);
csseditor_zip.on('end', resolve);
csseditor_zip.on('error', reject);
csseditor_zip.finalize();
});
// full.zip
Promise.all([core, client, csseditor]).then(() => {
const full_zip = archiver('zip');
full_zip.file('./release/core.zip', {name: 'core.zip'});
full_zip.file('./release/client.zip', {name: 'client.zip'});
full_zip.file('./release/csseditor.zip', {name: 'csseditor.zip'});
const full_zip_stream = fs.createWriteStream('./release/full.zip');
full_zip.pipe(full_zip_stream);
full_zip.finalize();
});