39 lines
992 B
JavaScript
Executable file
39 lines
992 B
JavaScript
Executable file
#!/usr/bin/env node
|
|
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
const manifest = require('../manifest');
|
|
const JSZip = require('jszip');
|
|
|
|
const resources = () => {
|
|
return [
|
|
'manifest.json',
|
|
'resources/disabled_32x32.png',
|
|
'resources/enabled_32x32.png',
|
|
manifest.options_ui.page,
|
|
'build/settings.js',
|
|
].concat(
|
|
Object.values(manifest.icons),
|
|
manifest.background.scripts,
|
|
manifest.content_scripts.map(cs => cs.js).reduce((a1, a2) => a1.concat(a2), []),
|
|
manifest.web_accessible_resources,
|
|
).sort();
|
|
};
|
|
|
|
const output = `vim-vixen-${manifest.version}.zip`
|
|
|
|
let basedir = path.join(__dirname, '..');
|
|
let zip = new JSZip();
|
|
|
|
for (let r of resources()) {
|
|
console.log(` adding: ${r}`)
|
|
let data = fs.readFileSync(path.join(basedir, r));
|
|
zip.file(r, data);
|
|
}
|
|
|
|
zip
|
|
.generateNodeStream({ type: 'nodebuffer', streamFiles: true })
|
|
.pipe(fs.createWriteStream(output))
|
|
.on('finish', function () {
|
|
console.log(`${output} created`);
|
|
});
|