diff --git a/bin/package.js b/bin/package.js index 3983aace..3b275f62 100755 --- a/bin/package.js +++ b/bin/package.js @@ -41,6 +41,10 @@ var all = { // require(). asar: true, + // A glob expression, that unpacks the files with matching names to the + // "app.asar.unpacked" directory. + 'asar-unpack': 'WebTorrent*', + // The build version of the application. Maps to the FileVersion metadata property on // Windows, and CFBundleVersion on OS X. We're using the short git hash (e.g. 'e7d837e') // Windows requires the build version to start with a number :/ so we stick on a prefix @@ -81,7 +85,7 @@ var darwin = { 'helper-bundle-id': 'io.webtorrent.app.helper', // Application icon. - icon: path.join(__dirname, '..', 'static', 'WebTorrent.icns') + icon: config.APP_ICON + '.icns' } var win32 = { @@ -114,7 +118,7 @@ var win32 = { }, // Application icon. - icon: path.join(__dirname, '..', 'static', 'WebTorrent.ico') + icon: config.APP_ICON + '.ico' } var linux = { @@ -151,7 +155,7 @@ function buildDarwin (cb) { infoPlist.CFBundleDocumentTypes = [ { CFBundleTypeExtensions: [ 'torrent' ], - CFBundleTypeIconFile: 'WebTorrentFile.icns', + CFBundleTypeIconFile: path.basename(config.APP_FILE_ICON) + '.icns', CFBundleTypeName: 'BitTorrent Document', CFBundleTypeRole: 'Editor', LSHandlerRank: 'Owner', @@ -169,7 +173,7 @@ function buildDarwin (cb) { infoPlist.CFBundleURLTypes = [ { CFBundleTypeRole: 'Editor', - CFBundleURLIconFile: 'WebTorrentFile.icns', + CFBundleURLIconFile: path.basename(config.APP_FILE_ICON) + '.icns', CFBundleURLName: 'BitTorrent Magnet URL', CFBundleURLSchemes: [ 'magnet' ] } @@ -178,7 +182,7 @@ function buildDarwin (cb) { infoPlist.NSHumanReadableCopyright = config.COPYRIGHT fs.writeFileSync(infoPlistPath, plist.build(infoPlist)) - cp.execSync(`cp ${webTorrentFileIconPath} ${resourcesPath}`) + cp.execSync(`cp ${config.APP_FILE_ICON + '.icns'} ${resourcesPath}`) if (cb) cb(null) }) diff --git a/config.js b/config.js index cf1031d8..e9200bbd 100644 --- a/config.js +++ b/config.js @@ -2,7 +2,8 @@ var applicationConfigPath = require('application-config-path') var path = require('path') module.exports = { - APP_ICON: path.join(__dirname, 'static', 'WebTorrent.png'), + APP_FILE_ICON: path.join(pathToStatic(), 'WebTorrentFile'), + APP_ICON: path.join(pathToStatic(), 'WebTorrent'), APP_NAME: 'WebTorrent', CONFIG_PATH: applicationConfigPath('WebTorrent'), @@ -26,6 +27,9 @@ module.exports = { } function isProduction () { + if (!process.versions.electron) { + return false + } if (process.platform === 'darwin') { return !/\/Electron\.app\/Contents\/MacOS\/Electron$/.test(process.execPath) } @@ -36,3 +40,9 @@ function isProduction () { // TODO } } + +function pathToStatic () { + return isProduction() + ? path.join(process.resourcesPath, 'app.asar.unpacked', 'static') + : path.join(__dirname, 'static') +} diff --git a/main/windows.js b/main/windows.js index 17988afd..f56df2b8 100644 --- a/main/windows.js +++ b/main/windows.js @@ -16,7 +16,7 @@ function createMainWindow () { autoHideMenuBar: true, // Hide top menu bar unless Alt key is pressed (Windows, Linux) backgroundColor: '#282828', darkTheme: true, // Forces dark theme (GTK+3) - icon: config.APP_ICON, + icon: config.APP_ICON + '.png', minWidth: 375, minHeight: 38 + (120 * 2), // header height + 2 torrents show: false, // Hide window until DOM finishes loading