diff options
author | Shin'ya Ueoka <ueokande@i-beam.org> | 2019-04-27 12:20:18 +0900 |
---|---|---|
committer | Shin'ya Ueoka <ueokande@i-beam.org> | 2019-04-27 12:36:13 +0900 |
commit | 5dd5bbbd3c3f1cda588242714d66d0f454199bf7 (patch) | |
tree | ffe604817b6a9195863433df42316e95a1931401 /script | |
parent | 5613aaffb1c3a59b19413a617e8f0282330ad49b (diff) |
Use jszip on package script
Diffstat (limited to 'script')
-rwxr-xr-x | script/package | 39 | ||||
-rwxr-xr-x | script/package.sh | 21 |
2 files changed, 39 insertions, 21 deletions
diff --git a/script/package b/script/package new file mode 100755 index 0000000..07f8bdf --- /dev/null +++ b/script/package @@ -0,0 +1,39 @@ +#!/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`); + }); diff --git a/script/package.sh b/script/package.sh deleted file mode 100755 index f3da914..0000000 --- a/script/package.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -MANIFEST="manifest.json" - -version=$(jq -r '.version' $MANIFEST) - -icons=$(jq -r '.icons[]' $MANIFEST) -toolbar_icons="resources/disabled_32x32.png resources/enabled_32x32.png" -content_scripts=$(jq -r '.content_scripts[].js[]' $MANIFEST) -background_scripts=$(jq -r '.background.scripts[]' $MANIFEST) -web_accessible_resources=$(jq -r '.web_accessible_resources[]' $MANIFEST) -options_ui=$(jq -r '.options_ui.page' $MANIFEST) -options_scripts="" -for html in $options_ui; do - scripts=$(grep -Po "(?<=src=['\"])[^'\"]*" "$html") - for js in $scripts; do - options_scripts="$options_scripts $(dirname $html)/$js" - done -done - -zip ${version}.zip $MANIFEST $icons $toolbar_icons $content_scripts $background_scripts $web_accessible_resources $options_ui $options_scripts |