grunt-contrib-compress was changing the order of the files; switch to JSZip.

This commit is contained in:
ccd0 2015-04-13 20:22:07 -07:00
parent f668e377b5
commit 3d638f71f2
3 changed files with 25 additions and 207 deletions

View File

@ -1,4 +1,6 @@
path = require 'path'
crx = require 'crx'
JSZip = require 'jszip'
module.exports = (grunt) ->
grunt.util.linefeed = '\n'
@ -234,19 +236,6 @@ module.exports = (grunt) ->
]
tasks: 'build'
compress:
crx:
options:
archive: 'testbuilds/<%= pkg.name %><%= pkg.meta.suffix[pkg.channel] %>.crx.zip'
level: 9
pretty: true
expand: true
flatten: true
src: 'testbuilds/crx<%= pkg.meta.suffix[pkg.channel] %>/*'
dest: '/'
date: '<%= pkg.meta.date %>'
mode: parseInt('644', 8)
clean:
builds: 'builds'
testbuilds: 'testbuilds'
@ -329,7 +318,7 @@ module.exports = (grunt) ->
grunt.registerTask 'build-crx-channel', [
'concat:crx'
'copy:crx'
'compress:crx'
'zip-crx'
]
grunt.registerTask 'build-crx', [
@ -348,6 +337,17 @@ module.exports = (grunt) ->
'clean:tmpcrx'
]
grunt.registerTask 'zip-crx', 'Pack CRX contents in ZIP file', ->
pkg = grunt.config 'pkg'
zip = new JSZip()
for file in grunt.file.expand "testbuilds/crx#{pkg.meta.suffix[pkg.channel]}/*"
zip.file path.basename(file), grunt.file.read(file, {encoding: null}), {date: new Date(pkg.meta.date)}
output = zip.generate
type: 'nodebuffer'
compression: 'DEFLATE'
compressionOptions: {level: 9}
grunt.file.write "testbuilds/#{pkg.name}#{pkg.meta.suffix[pkg.channel]}.crx.zip", output
grunt.registerTask 'sign-channel', 'Sign CRX package', (channel) ->
done = @async()
pkg = grunt.config 'pkg'

202
npm-shrinkwrap.json generated
View File

@ -465,198 +465,6 @@
}
}
},
"grunt-contrib-compress": {
"version": "0.13.0",
"resolved": "https://registry.npmjs.org/grunt-contrib-compress/-/grunt-contrib-compress-0.13.0.tgz",
"dependencies": {
"archiver": {
"version": "0.13.1",
"resolved": "https://registry.npmjs.org/archiver/-/archiver-0.13.1.tgz",
"dependencies": {
"async": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/async/-/async-0.9.0.tgz"
},
"buffer-crc32": {
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.5.tgz"
},
"glob": {
"version": "4.3.5",
"resolved": "https://registry.npmjs.org/glob/-/glob-4.3.5.tgz",
"dependencies": {
"inflight": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz",
"dependencies": {
"wrappy": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz"
}
}
},
"inherits": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
},
"minimatch": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.1.tgz",
"dependencies": {
"brace-expansion": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz",
"dependencies": {
"balanced-match": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz"
},
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
}
}
}
}
},
"once": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/once/-/once-1.3.1.tgz",
"dependencies": {
"wrappy": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz"
}
}
}
}
},
"lazystream": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/lazystream/-/lazystream-0.1.0.tgz"
},
"lodash": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.1.tgz"
},
"readable-stream": {
"version": "1.0.33",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz",
"dependencies": {
"core-util-is": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz"
},
"inherits": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
},
"isarray": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
},
"string_decoder": {
"version": "0.10.31",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
}
}
},
"tar-stream": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.1.2.tgz",
"dependencies": {
"bl": {
"version": "0.9.3",
"resolved": "https://registry.npmjs.org/bl/-/bl-0.9.3.tgz"
},
"end-of-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.1.0.tgz",
"dependencies": {
"once": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/once/-/once-1.3.1.tgz",
"dependencies": {
"wrappy": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz"
}
}
}
}
},
"xtend": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz"
}
}
},
"zip-stream": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-0.5.0.tgz",
"dependencies": {
"compress-commons": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-0.2.0.tgz",
"dependencies": {
"crc32-stream": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-0.3.1.tgz"
},
"node-int64": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.3.3.tgz"
}
}
}
}
}
}
},
"chalk": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz",
"dependencies": {
"ansi-styles": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz"
},
"escape-string-regexp": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz"
},
"has-ansi": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz",
"dependencies": {
"ansi-regex": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz"
}
}
},
"strip-ansi": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz",
"dependencies": {
"ansi-regex": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz"
}
}
},
"supports-color": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz"
}
}
},
"prettysize": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/prettysize/-/prettysize-0.0.3.tgz"
}
}
},
"grunt-contrib-concat": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-0.5.1.tgz",
@ -1081,6 +889,16 @@
}
}
},
"jszip": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/jszip/-/jszip-2.5.0.tgz",
"dependencies": {
"pako": {
"version": "0.2.6",
"resolved": "https://registry.npmjs.org/pako/-/pako-0.2.6.tgz"
}
}
},
"load-grunt-tasks": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-3.1.0.tgz",

View File

@ -49,7 +49,6 @@
"grunt-concurrent": "^1.0.0",
"grunt-contrib-clean": "^0.6.0",
"grunt-contrib-coffee": "^0.13.0",
"grunt-contrib-compress": "^0.13.0",
"grunt-contrib-concat": "^0.5.1",
"grunt-contrib-copy": "^0.8.0",
"grunt-contrib-jshint": "^0.11.1",
@ -57,6 +56,7 @@
"grunt-markdown": "^0.7.0",
"grunt-shell": "^1.1.2",
"grunt-webstore-upload": "^0.8.2",
"jszip": "^2.5.0",
"load-grunt-tasks": "^3.1.0",
"npm-shrinkwrap": "^5.3.0"
},