aboutsummaryrefslogtreecommitdiff
path: root/script
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2019-04-27 12:20:18 +0900
committerShin'ya Ueoka <ueokande@i-beam.org>2019-04-27 12:36:13 +0900
commit5dd5bbbd3c3f1cda588242714d66d0f454199bf7 (patch)
treeffe604817b6a9195863433df42316e95a1931401 /script
parent5613aaffb1c3a59b19413a617e8f0282330ad49b (diff)
Use jszip on package script
Diffstat (limited to 'script')
-rwxr-xr-xscript/package39
-rwxr-xr-xscript/package.sh21
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