Windows: Create installer .exe file
This commit is contained in:
@@ -210,6 +210,7 @@ function buildDarwin (cb) {
|
|||||||
// Create .zip file (used by the auto-updater)
|
// Create .zip file (used by the auto-updater)
|
||||||
var zipPath = path.join(config.ROOT_PATH, 'dist', BUILD_NAME + '.zip')
|
var zipPath = path.join(config.ROOT_PATH, 'dist', BUILD_NAME + '.zip')
|
||||||
cp.execSync(`pushd ${buildPath[0]} && zip -r -y ${zipPath} ${config.APP_NAME + '.app'} && popd`)
|
cp.execSync(`pushd ${buildPath[0]} && zip -r -y ${zipPath} ${config.APP_NAME + '.app'} && popd`)
|
||||||
|
console.log('Created OS X .zip file.')
|
||||||
|
|
||||||
// Create a .dmg (OS X disk image) file, for easy user installation.
|
// Create a .dmg (OS X disk image) file, for easy user installation.
|
||||||
var dmgOpts = {
|
var dmgOpts = {
|
||||||
@@ -239,6 +240,7 @@ function buildDarwin (cb) {
|
|||||||
if (info.type === 'step-begin') console.log(info.title + '...')
|
if (info.type === 'step-begin') console.log(info.title + '...')
|
||||||
})
|
})
|
||||||
dmg.on('finish', function (info) {
|
dmg.on('finish', function (info) {
|
||||||
|
console.log('Created OS X disk image (.dmg) file.')
|
||||||
cb(null, buildPath)
|
cb(null, buildPath)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -247,7 +249,32 @@ function buildDarwin (cb) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function buildWin32 (cb) {
|
function buildWin32 (cb) {
|
||||||
electronPackager(Object.assign({}, all, win32), cb)
|
var installer = require('electron-winstaller')
|
||||||
|
|
||||||
|
electronPackager(Object.assign({}, all, win32), function (err, buildPath) {
|
||||||
|
if (err) return cb(err)
|
||||||
|
|
||||||
|
installer.createWindowsInstaller({
|
||||||
|
name: config.APP_NAME,
|
||||||
|
productName: config.APP_NAME,
|
||||||
|
title: config.APP_NAME,
|
||||||
|
exe: config.APP_NAME + '.exe',
|
||||||
|
|
||||||
|
appDirectory: buildPath[0],
|
||||||
|
outputDirectory: path.join(config.ROOT_PATH, 'dist'),
|
||||||
|
version: pkg.version,
|
||||||
|
description: config.APP_NAME,
|
||||||
|
authors: config.APP_TEAM
|
||||||
|
// iconUrl: config.APP_ICON + '.ico',
|
||||||
|
// setupIcon: config.APP_ICON + '.ico',
|
||||||
|
// certificateFile: '',
|
||||||
|
// usePackageJson: false
|
||||||
|
// loadingGif: '',
|
||||||
|
}).then(function () {
|
||||||
|
console.log('Created Windows installer.')
|
||||||
|
cb(null, buildPath)
|
||||||
|
}).catch(cb)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildLinux (cb) {
|
function buildLinux (cb) {
|
||||||
|
|||||||
@@ -2,13 +2,15 @@ var applicationConfigPath = require('application-config-path')
|
|||||||
var path = require('path')
|
var path = require('path')
|
||||||
|
|
||||||
var APP_NAME = 'WebTorrent'
|
var APP_NAME = 'WebTorrent'
|
||||||
|
var APP_TEAM = 'The WebTorrent Project'
|
||||||
var APP_VERSION = require('./package.json').version
|
var APP_VERSION = require('./package.json').version
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
APP_COPYRIGHT: 'Copyright © 2014-2016 The WebTorrent Project',
|
APP_COPYRIGHT: 'Copyright © 2014-2016 ' + APP_TEAM,
|
||||||
APP_FILE_ICON: path.join(__dirname, 'static', 'WebTorrentFile'),
|
APP_FILE_ICON: path.join(__dirname, 'static', 'WebTorrentFile'),
|
||||||
APP_ICON: path.join(__dirname, 'static', 'WebTorrent'),
|
APP_ICON: path.join(__dirname, 'static', 'WebTorrent'),
|
||||||
APP_NAME: APP_NAME,
|
APP_NAME: APP_NAME,
|
||||||
|
APP_TEAM: APP_TEAM,
|
||||||
APP_VERSION: APP_VERSION,
|
APP_VERSION: APP_VERSION,
|
||||||
|
|
||||||
AUTO_UPDATE_URL: 'https://webtorrent.io/app/update?version=' + APP_VERSION,
|
AUTO_UPDATE_URL: 'https://webtorrent.io/app/update?version=' + APP_VERSION,
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
|
module.exports = {
|
||||||
|
init
|
||||||
|
}
|
||||||
|
|
||||||
var log = require('./log')
|
var log = require('./log')
|
||||||
|
|
||||||
module.exports = function () {
|
function init () {
|
||||||
if (process.platform === 'win32') {
|
if (process.platform === 'win32') {
|
||||||
var path = require('path')
|
var path = require('path')
|
||||||
var iconPath = path.join(process.resourcesPath, 'app.asar.unpacked', 'static', 'WebTorrentFile.ico')
|
var iconPath = path.join(process.resourcesPath, 'app.asar.unpacked', 'static', 'WebTorrentFile.ico')
|
||||||
@@ -4,13 +4,44 @@ var app = electron.app
|
|||||||
|
|
||||||
var autoUpdater = require('./auto-updater')
|
var autoUpdater = require('./auto-updater')
|
||||||
var config = require('../config')
|
var config = require('../config')
|
||||||
|
var handlers = require('./handlers')
|
||||||
var ipc = require('./ipc')
|
var ipc = require('./ipc')
|
||||||
var log = require('./log')
|
var log = require('./log')
|
||||||
var menu = require('./menu')
|
var menu = require('./menu')
|
||||||
var registerProtocolHandler = require('./register-handlers')
|
|
||||||
var shortcuts = require('./shortcuts')
|
var shortcuts = require('./shortcuts')
|
||||||
var windows = require('./windows')
|
var windows = require('./windows')
|
||||||
|
|
||||||
|
var argv = sliceArgv(process.argv)
|
||||||
|
|
||||||
|
if (process.platform === 'win32') {
|
||||||
|
var squirrelCmd = argv[0]
|
||||||
|
if (squirrelCmd === '--squirrel-install' || squirrelCmd === '--squirrel-updated') {
|
||||||
|
handlers.init()
|
||||||
|
|
||||||
|
// TODO:
|
||||||
|
// - Install desktop and start menu shortcuts
|
||||||
|
// - Add explorer context menus
|
||||||
|
|
||||||
|
// Always quit when done
|
||||||
|
app.quit()
|
||||||
|
}
|
||||||
|
if (squirrelCmd === '--squirrel-uninstall') {
|
||||||
|
// Undo anything we did in the --squirrel-install and --squirrel-updated handlers
|
||||||
|
|
||||||
|
// TODO: implement this
|
||||||
|
|
||||||
|
// Always quit when done
|
||||||
|
app.quit()
|
||||||
|
}
|
||||||
|
if (squirrelCmd === '--squirrel-obsolete') {
|
||||||
|
// This is called on the outgoing version of your app before we update to the new
|
||||||
|
// version - it's the opposite of --squirrel-updated
|
||||||
|
|
||||||
|
// Always quit when done
|
||||||
|
app.quit()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Prevent multiple instances of the app from running at the same time. New instances
|
// Prevent multiple instances of the app from running at the same time. New instances
|
||||||
// signal this instance and exit.
|
// signal this instance and exit.
|
||||||
var shouldQuit = app.makeSingleInstance(function (newArgv) {
|
var shouldQuit = app.makeSingleInstance(function (newArgv) {
|
||||||
@@ -32,8 +63,6 @@ if (shouldQuit) {
|
|||||||
app.quit()
|
app.quit()
|
||||||
}
|
}
|
||||||
|
|
||||||
var argv = sliceArgv(process.argv)
|
|
||||||
|
|
||||||
app.on('open-file', onOpen)
|
app.on('open-file', onOpen)
|
||||||
app.on('open-url', onOpen)
|
app.on('open-url', onOpen)
|
||||||
app.on('will-finish-launching', function () {
|
app.on('will-finish-launching', function () {
|
||||||
@@ -48,7 +77,7 @@ app.on('ready', function () {
|
|||||||
menu.init()
|
menu.init()
|
||||||
windows.createMainWindow()
|
windows.createMainWindow()
|
||||||
shortcuts.init()
|
shortcuts.init()
|
||||||
registerProtocolHandler()
|
if (process.platform !== 'win32') handlers.init()
|
||||||
})
|
})
|
||||||
|
|
||||||
app.on('ipcReady', function () {
|
app.on('ipcReady', function () {
|
||||||
|
|||||||
@@ -34,6 +34,7 @@
|
|||||||
"electron-osx-sign": "^0.3.0",
|
"electron-osx-sign": "^0.3.0",
|
||||||
"electron-packager": "^5.0.0",
|
"electron-packager": "^5.0.0",
|
||||||
"electron-prebuilt": "0.37.2",
|
"electron-prebuilt": "0.37.2",
|
||||||
|
"electron-winstaller": "^2.0.5",
|
||||||
"gh-release": "^2.0.2",
|
"gh-release": "^2.0.2",
|
||||||
"path-exists": "^2.1.0",
|
"path-exists": "^2.1.0",
|
||||||
"plist": "^1.2.0",
|
"plist": "^1.2.0",
|
||||||
|
|||||||
Reference in New Issue
Block a user