66 lines
2.3 KiB
JavaScript
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();
|
||
|
});
|