diff --git a/Makefile b/Makefile index e173a9ef..53a3ce99 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ ELECTRON_PACKAGER=./node_modules/.bin/electron-packager ELECTRON_BUILDER=./node_modules/.bin/electron-builder ELECTRON_OSX_SIGN=./node_modules/.bin/electron-osx-sign -ELECTRON_IGNORE=$(shell node -e "console.log(require('./package.json').packageIgnore.join('|'))") +ELECTRON_IGNORE=$(shell node scripts/packageignore.js) ELECTRON_VERSION=0.36.11 ETCHER_VERSION=$(shell node -e "console.log(require('./package.json').version)") APPLICATION_NAME=$(shell node -e "console.log(require('./package.json').displayName)") diff --git a/package.json b/package.json index 6b6f803d..bbb453a2 100644 --- a/package.json +++ b/package.json @@ -21,25 +21,16 @@ "packageIgnore": [ "LICENSE", "Makefile", - "(.*)\\.md", + "(.*)\\.pem", + "(.*)\\.log", + "assets/osx", "appveyor.yml", "bower.json", "gulpfile.js", "screenshot.png", "tests", "etcher-release", - "lib/scss", - "node_modules/electron-mocha", - "node_modules/electron-builder", - "node_modules/electron-osx-sign", - "node_modules/angular-mocks", - "node_modules/browserify", - "node_modules/gulp*", - "node_modules/jshint-stylish", - "node_modules/mochainon", - "node_modules/vinyl-*", - "node_modules/rindle", - "node_modules/tmp" + "lib/scss" ], "builder": { "win": { diff --git a/scripts/packageignore.js b/scripts/packageignore.js new file mode 100644 index 00000000..3c951c59 --- /dev/null +++ b/scripts/packageignore.js @@ -0,0 +1,37 @@ +/** + * This script is in charge of building a regex of files to ignore + * when packaging for `electron-packager`'s `ignore` option. + * + * See https://github.com/electron-userland/electron-packager/blob/master/usage.txt + * + * Usage: + * + * node scripts/packageignore.js + */ + +const _ = require('lodash'); +const fs = require('fs'); +const path = require('path'); +const packageJSON = require('../package.json'); + +const topLevelFiles = fs.readdirSync(path.join(__dirname, '..')); + +console.log(_.flatten([ + packageJSON.packageIgnore, + + // Development dependencies + _.map(_.keys(packageJSON.devDependencies), function(dependency) { + return path.join('node_modules', dependency); + }), + + // Top level hidden files + _.filter(topLevelFiles, function(file) { + return _.startsWith(file, '.'); + }), + + // Top level markdown files + _.filter(topLevelFiles, function(file) { + return _.endsWith(file, '.md'); + }) + +]).join('|'));