wip script updates
This commit is contained in:
parent
ccff016820
commit
76e19c8469
|
@ -11,57 +11,81 @@ import editjson from 'gulp-json-editor';
|
|||
import corepkg from './core/package';
|
||||
import clientpkg from './client/package';
|
||||
|
||||
gulp.task('release-package', function () {
|
||||
return pump([
|
||||
gulp.src('package.json'),
|
||||
editjson(function (mainpkg) {
|
||||
delete mainpkg.main;
|
||||
delete mainpkg.devDependencies;
|
||||
delete mainpkg.scripts;
|
||||
return mainpkg;
|
||||
}),
|
||||
gulp.dest('release')
|
||||
]);
|
||||
});
|
||||
// core-release >
|
||||
|
||||
gulp.task('client', function () {
|
||||
return pump([
|
||||
gulp.src('client/dist/*.client-release.js'),
|
||||
rename(`client.${clientpkg.version}.js`),
|
||||
gulp.dest('release')
|
||||
]);
|
||||
});
|
||||
|
||||
gulp.task('core', function () {
|
||||
gulp.task('core-main', function () {
|
||||
return pump([
|
||||
gulp.src('core/dist/main.js'),
|
||||
inject.after("'use strict';\n", 'const PRODUCTION = true;\n'),
|
||||
inject.after(`'use strict';\n`, 'const PRODUCTION = true;\n'),
|
||||
rename(`core.${corepkg.version}.js`),
|
||||
gulp.dest('release')
|
||||
gulp.dest('release/core')
|
||||
]);
|
||||
});
|
||||
|
||||
gulp.task('sparkplug', function () {
|
||||
gulp.task('core-pkg', function() {
|
||||
return pump([
|
||||
gulp.src('core/dist/sparkplug.js'),
|
||||
gulp.dest('release')
|
||||
gulp.src('package.json'),
|
||||
editjson(function(pkg) {
|
||||
pkg.main = `core.${corepkg.version}.js`;
|
||||
delete pkg.devDependencies;
|
||||
delete pkg.scripts;
|
||||
return pkg;
|
||||
}),
|
||||
gulp.dest('release/core')
|
||||
]);
|
||||
});
|
||||
|
||||
gulp.task('core-modules', function () {
|
||||
return pump([
|
||||
gulp.src('core/dist/modules/**/*'),
|
||||
copy('release', { prefix: 2 })
|
||||
copy('release/core', { prefix: 2 })
|
||||
]);
|
||||
});
|
||||
|
||||
gulp.task('index', function () {
|
||||
gulp.task('core-sparkplug', function () {
|
||||
return pump([
|
||||
file('index.js', `module.exports = require('./core.${corepkg.version}.js');`, {src: true}),
|
||||
gulp.dest('release')
|
||||
gulp.src('core/dist/sparkplug.js'),
|
||||
gulp.dest('release/core')
|
||||
]);
|
||||
});
|
||||
|
||||
gulp.task('core-release', gulp.parallel('core-main', 'core-pkg', 'core-sparkplug', 'core-modules'));
|
||||
|
||||
// < core-release
|
||||
|
||||
// client
|
||||
|
||||
gulp.task('client-main', function () {
|
||||
return pump([
|
||||
gulp.src('client/dist/*.client-release.js'),
|
||||
rename(`client.${clientpkg.version}.js`),
|
||||
gulp.dest('release/client')
|
||||
]);
|
||||
});
|
||||
|
||||
gulp.task('client-pkg', function() {
|
||||
return pump([
|
||||
gulp.src('client/package.json'),
|
||||
editjson(function (pkg) {
|
||||
pkg.main = `client.${clientpkg.version}.js`;
|
||||
delete pkg.scripts;
|
||||
return pkg;
|
||||
}),
|
||||
gulp.dest('release/client')
|
||||
]);
|
||||
});
|
||||
|
||||
gulp.task('client-sparkplug', function () {
|
||||
return pump([
|
||||
gulp.src('core/dist/sparkplug.js'),
|
||||
gulp.dest('release/client')
|
||||
]);
|
||||
});
|
||||
|
||||
gulp.task('client-release', gulp.parallel('client-main', 'client-pkg', 'client-sparkplug'));
|
||||
|
||||
// CSS Editor
|
||||
|
||||
gulp.task('css-editor', function () {
|
||||
return pump([
|
||||
gulp.src('csseditor/dist/csseditor-release.js'),
|
||||
|
@ -70,8 +94,10 @@ gulp.task('css-editor', function () {
|
|||
]);
|
||||
});
|
||||
|
||||
// Deps
|
||||
|
||||
gulp.task('node-modules', function () {
|
||||
return copydeps('.', 'release');
|
||||
return copydeps('.', 'release/core');
|
||||
});
|
||||
|
||||
gulp.task('node-sass-bindings', gulp.series(function () {
|
||||
|
@ -79,7 +105,7 @@ gulp.task('node-sass-bindings', gulp.series(function () {
|
|||
}, function () {
|
||||
return pump([
|
||||
gulp.src('other/node_sass_bindings/**/*'),
|
||||
copy('release/node_modules/node-sass/vendor', { prefix: 2 })
|
||||
copy('release/core/node_modules/node-sass/vendor', { prefix: 2 })
|
||||
]);
|
||||
}));
|
||||
|
||||
|
@ -88,14 +114,16 @@ gulp.task('keytar-bindings', gulp.series(function () {
|
|||
}, function () {
|
||||
return pump([
|
||||
gulp.src('other/keytar/**/*'),
|
||||
copy('release/node_modules/keytar/build/Release', {prefix: 2})
|
||||
copy('release/core/node_modules/keytar/build/Release', { prefix: 2 })
|
||||
]);
|
||||
}));
|
||||
|
||||
gulp.task('dependencies', gulp.series('node-modules', gulp.parallel('node-sass-bindings', 'keytar-bindings')));
|
||||
// Other
|
||||
|
||||
gulp.task('build-release', gulp.parallel('release-package', 'client', 'core', 'sparkplug', 'core-modules', 'index', 'css-editor', 'dependencies'));
|
||||
|
||||
gulp.task('release', gulp.series(function () {
|
||||
gulp.task('del-release', function() {
|
||||
return del(['release/**/*']);
|
||||
}, 'build-release'));
|
||||
});
|
||||
|
||||
gulp.task('dependencies', gulp.series('node-modules', gulp.parallel('node-sass-bindings', 'keytar-bindings')));
|
||||
gulp.task('build-release', gulp.parallel('core-release', 'client-release', 'dependencies'));
|
||||
gulp.task('tt', gulp.series('del-release', gulp.parallel('build-release')));
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -68,7 +68,9 @@
|
|||
"vue-loader": "^13.7.2",
|
||||
"vue-material-design-icons": "^1.6.0",
|
||||
"vue-template-compiler": "^2.5.17",
|
||||
"webpack": "^3.12.0"
|
||||
"webpack": "^3.12.0",
|
||||
"archiver": "^3.0.0",
|
||||
"hash-files": "^1.1.1"
|
||||
},
|
||||
"scripts": {
|
||||
"install": "node scripts/install.js",
|
||||
|
@ -88,6 +90,7 @@
|
|||
"package_release": "node scripts/package-release.js",
|
||||
"release": "npm run lint && npm run build_release && gulp release && npm run package_release",
|
||||
"update_release": "npm run build_release && gulp build-release",
|
||||
"tt": "gulp tt",
|
||||
"inject": "node scripts/inject.js"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,65 +1,117 @@
|
|||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const archiver = require('archiver');
|
||||
const hashfiles = require('hash-files');
|
||||
|
||||
const releaseStub = require('./releasestub.json');
|
||||
|
||||
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');
|
||||
const corepkg = require('../release/core/package.json');
|
||||
const clientpkg = require('../release/client/package.json');
|
||||
// const editorpkg = require('../release/editor/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 createArchiver = (level = 1) => {
|
||||
return archiver('tar', {
|
||||
gzip: true,
|
||||
gzipOptions: {
|
||||
level
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const core_zip_stream = fs.createWriteStream('./release/core.zip');
|
||||
core_zip.pipe(core_zip_stream);
|
||||
async function hashFile(fn) {
|
||||
return new Promise((resolve, reject) => {
|
||||
hashfiles({ files: [fn], algorithm: 'sha256' }, (error, hash) => {
|
||||
if (error) return reject();
|
||||
resolve(hash);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
core_zip.on('end', resolve);
|
||||
core_zip.on('error', reject);
|
||||
core_zip.finalize();
|
||||
});
|
||||
async function fileSize(fn) {
|
||||
return new Promise((resolve, reject) => {
|
||||
fs.stat(fn, (err, stats) => {
|
||||
if (err) return reject();
|
||||
resolve(stats['size']);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// 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`});
|
||||
// Core
|
||||
async function archiveCore(out = './release/core.tar.gz') {
|
||||
return new Promise((resolve, reject) => {
|
||||
console.log('packaging core');
|
||||
const mainFn = `core.${corepkg.version}.js`;
|
||||
const coreArchive = createArchiver();
|
||||
coreArchive.file('./release/core/package.json', { name: 'package.json' });
|
||||
coreArchive.file('./release/core/index.js', { name: 'index.js' });
|
||||
coreArchive.file(`./release/core/${mainFn}`, { name: `${mainFn}` });
|
||||
coreArchive.file('./release/core/sparkplug.js', { name: 'sparkplug.js' });
|
||||
coreArchive.directory('./release/core/modules', 'modules');
|
||||
coreArchive.directory('./release/core/node_modules', 'node_modules');
|
||||
|
||||
const client_zip_stream = fs.createWriteStream('./release/client.zip');
|
||||
client_zip.pipe(client_zip_stream);
|
||||
const coreZipStream = fs.createWriteStream(out);
|
||||
coreArchive.pipe(coreZipStream);
|
||||
|
||||
client_zip.on('end', resolve);
|
||||
client_zip.on('error', reject);
|
||||
client_zip.finalize();
|
||||
});
|
||||
coreArchive.on('end', () => resolve(out));
|
||||
coreArchive.on('error', reject);
|
||||
coreArchive.finalize();
|
||||
});
|
||||
}
|
||||
|
||||
// csseditor.zip
|
||||
const csseditor = new Promise((resolve, reject) => {
|
||||
const csseditor_zip = archiver('zip');
|
||||
csseditor_zip.directory('./release/csseditor', 'csseditor');
|
||||
// Client
|
||||
async function archiveClient(out = './release/client.tar.gz') {
|
||||
return new Promise((resolve, reject) => {
|
||||
console.log('packaging client');
|
||||
const mainFn = `client.${clientpkg.version}.js`;
|
||||
const clientArchive = createArchiver();
|
||||
clientArchive.file('./release/client/package.json', { name: 'package.json' });
|
||||
clientArchive.file('./release/core/sparkplug.js', { name: 'sparkplug.js' });
|
||||
clientArchive.file(`./release/client/${mainFn}`, { name: `${mainFn}` });
|
||||
|
||||
const csseditor_zip_stream = fs.createWriteStream('./release/csseditor.zip');
|
||||
csseditor_zip.pipe(csseditor_zip_stream);
|
||||
const clientZipStream = fs.createWriteStream(out);
|
||||
clientArchive.pipe(clientZipStream);
|
||||
|
||||
csseditor_zip.on('end', resolve);
|
||||
csseditor_zip.on('error', reject);
|
||||
csseditor_zip.finalize();
|
||||
});
|
||||
clientArchive.on('end', () => resolve(out));
|
||||
clientArchive.on('error', reject);
|
||||
clientArchive.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'});
|
||||
async function pack() {
|
||||
const coreArchive = await archiveCore();
|
||||
const coreHash = await hashFile(coreArchive);
|
||||
const coreSize = await fileSize(coreArchive);
|
||||
console.log(`${coreArchive} ${coreSize} | ${coreHash}`);
|
||||
|
||||
const full_zip_stream = fs.createWriteStream('./release/full.zip');
|
||||
full_zip.pipe(full_zip_stream);
|
||||
full_zip.finalize();
|
||||
});
|
||||
const coreStub = releaseStub.files.find(f => f.id === 'core');
|
||||
coreStub.name = 'core.tar.gz';
|
||||
coreStub.version = corepkg.version;
|
||||
coreStub.hash = coreHash;
|
||||
coreStub.size = coreSize;
|
||||
coreStub.remote = coreStub.remote.replace(':fn', 'core.tar.gz');
|
||||
|
||||
const clientArchive = await archiveClient();
|
||||
const clientHash = await hashFile(clientArchive);
|
||||
const clientSize = await fileSize(clientArchive);
|
||||
console.log(`${clientArchive} ${clientSize} | ${clientHash}`);
|
||||
|
||||
const clientStub = releaseStub.files.find(f => f.id === 'client');
|
||||
clientStub.name = 'client.tar.gz';
|
||||
clientStub.version = clientpkg.version;
|
||||
clientStub.hash = clientHash;
|
||||
clientStub.size = clientSize;
|
||||
clientStub.remote = clientStub.remote.replace(':fn', 'client.tar.gz');
|
||||
|
||||
releaseStub.mver = mainpkg.version;
|
||||
releaseStub.files = [
|
||||
coreStub,
|
||||
clientStub
|
||||
];
|
||||
|
||||
fs.writeFile('./release/releaseinfo.json', JSON.stringify(releaseStub, null, 4), (err) => {
|
||||
console.log(`all done! Don't forget to update :rel`);
|
||||
});
|
||||
}
|
||||
|
||||
pack();
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
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();
|
||||
});
|
|
@ -0,0 +1,30 @@
|
|||
{
|
||||
"mver": "",
|
||||
"stub": "/master/installer/stub.js",
|
||||
"files": [
|
||||
{
|
||||
"id": "client",
|
||||
"name": "",
|
||||
"version": "",
|
||||
"size": "",
|
||||
"remote": "/releases/download/:rel/:fn",
|
||||
"hash": ""
|
||||
},
|
||||
{
|
||||
"id": "core",
|
||||
"name": "",
|
||||
"version": "",
|
||||
"size": "",
|
||||
"remote": "/releases/download/:rel/:fn",
|
||||
"hash": ""
|
||||
},
|
||||
{
|
||||
"id": "editor",
|
||||
"name": "",
|
||||
"version": "",
|
||||
"size": "210481",
|
||||
"remote": "/releases/download/:rel/:fn",
|
||||
"hash": ""
|
||||
}
|
||||
]
|
||||
}
|
Loading…
Reference in New Issue