diff --git a/Gruntfile.js b/Gruntfile.js index 419e7ba7..e84b09f4 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,7 +1,8 @@ /* eslint-env node */ -const fs = require('fs'); +const fs = require('fs-extra'); const path = require('path'); +const debug = require('debug'); const webpackConfig = require('./build/webpack.config'); const pkg = require('./package.json'); @@ -9,6 +10,7 @@ const hookRcedit = require('./build/util/hook-rcedit'); const codeSignConfig = require('../keys/codesign'); hookRcedit.setup(); +debug.enable('electron-notarize'); module.exports = function(grunt) { require('time-grunt')(grunt); @@ -126,21 +128,6 @@ module.exports = function(grunt) { dest: 'tmp/desktop/KeeWeb-win32-x64/Resources/', nonull: true }, - 'desktop-darwin-helper-x64': { - src: 'helper/darwin/KeeWebHelper', - dest: 'tmp/desktop/KeeWeb-darwin-x64/KeeWeb.app/Contents/Resources/', - nonull: true, - options: { mode: '0755' } - }, - 'desktop-darwin-installer': { - cwd: 'package/osx/KeeWeb Installer.app', - dest: - 'tmp/desktop/KeeWeb-darwin-x64/KeeWeb.app/Contents/Installer/KeeWeb Installer.app', - src: '**', - expand: true, - nonull: true, - options: { mode: true } - }, 'desktop-win32-dist-x64': { src: 'tmp/desktop/KeeWeb.win.x64.exe', dest: `dist/desktop/KeeWeb-${pkg.version}.win.x64.exe`, @@ -289,7 +276,43 @@ module.exports = function(grunt) { appleId: codeSignConfig.appleId, appleIdPassword: '@keychain:AC_PASSWORD', ascProvider: codeSignConfig.teamId - } + }, + afterCopy: [ + (buildPath, electronVersion, platform, arch, callback) => { + if (path.basename(buildPath) !== 'app') { + throw new Error('Bad build path: ' + buildPath); + } + const resPath = path.dirname(buildPath); + if (path.basename(resPath) !== 'Resources') { + throw new Error('Bad Resources path: ' + resPath); + } + const helperTargetPath = path.join( + resPath, + 'helper/darwin/KeeWebHelper' + ); + const helperSourcePath = path.join( + __dirname, + 'helper/darwin/KeeWebHelper' + ); + fs.copySync(helperSourcePath, helperTargetPath); + + const contentsPath = path.dirname(resPath); + if (path.basename(contentsPath) !== 'Contents') { + throw new Error('Bad Contents path: ' + contentsPath); + } + const installerSourcePath = path.join( + __dirname, + 'package/osx/KeeWeb Installer.app' + ); + const installerTargetPath = path.join( + contentsPath, + 'Installer/KeeWeb Installer.app' + ); + fs.copySync(installerSourcePath, installerTargetPath); + + callback(); + } + ] } }, win32: { diff --git a/package-lock.json b/package-lock.json index 18c0abca..57ea4d9a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3894,6 +3894,16 @@ "ms": "^2.1.1" } }, + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, "sumchecker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-2.0.2.tgz", @@ -5298,11 +5308,11 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "requires": { - "graceful-fs": "^4.1.2", + "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } @@ -5870,6 +5880,16 @@ "requires": { "ms": "^2.1.1" } + }, + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } } } }, diff --git a/package.json b/package.json index 23f8fcba..81e35692 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "eslint-plugin-standard": "4.0.1", "exports-loader": "0.7.0", "font-awesome": "4.7.0", + "fs-extra": "^8.1.0", "grunt": "1.0.4", "grunt-chmod": "^1.1.1", "grunt-contrib-clean": "2.0.0",