mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-12-29 09:34:58 +03:00
Revert "Revert "Add asar support in Atom""
This commit is contained in:
parent
c665747879
commit
5a8885aeed
@ -6,6 +6,6 @@
|
|||||||
"url": "https://github.com/atom/atom.git"
|
"url": "https://github.com/atom/atom.git"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"atom-package-manager": "0.157.0"
|
"atom-package-manager": "0.158.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -223,7 +223,7 @@ module.exports = (grunt) ->
|
|||||||
|
|
||||||
ciTasks = ['output-disk-space', 'download-atom-shell', 'download-atom-shell-chromedriver', 'build']
|
ciTasks = ['output-disk-space', 'download-atom-shell', 'download-atom-shell-chromedriver', 'build']
|
||||||
ciTasks.push('dump-symbols') if process.platform isnt 'win32'
|
ciTasks.push('dump-symbols') if process.platform isnt 'win32'
|
||||||
ciTasks.push('set-version', 'check-licenses', 'lint')
|
ciTasks.push('set-version', 'check-licenses', 'lint', 'generate-asar')
|
||||||
ciTasks.push('mkdeb') if process.platform is 'linux'
|
ciTasks.push('mkdeb') if process.platform is 'linux'
|
||||||
ciTasks.push('create-windows-installer') if process.platform is 'win32'
|
ciTasks.push('create-windows-installer') if process.platform is 'win32'
|
||||||
ciTasks.push('test') if process.platform is 'darwin'
|
ciTasks.push('test') if process.platform is 'darwin'
|
||||||
@ -231,6 +231,6 @@ module.exports = (grunt) ->
|
|||||||
ciTasks.push('publish-build')
|
ciTasks.push('publish-build')
|
||||||
grunt.registerTask('ci', ciTasks)
|
grunt.registerTask('ci', ciTasks)
|
||||||
|
|
||||||
defaultTasks = ['download-atom-shell', 'download-atom-shell-chromedriver', 'build', 'set-version']
|
defaultTasks = ['download-atom-shell', 'download-atom-shell-chromedriver', 'build', 'set-version', 'generate-asar']
|
||||||
defaultTasks.push 'install' unless process.platform is 'linux'
|
defaultTasks.push 'install' unless process.platform is 'linux'
|
||||||
grunt.registerTask('default', defaultTasks)
|
grunt.registerTask('default', defaultTasks)
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
"url": "https://github.com/atom/atom.git"
|
"url": "https://github.com/atom/atom.git"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"asar": "^0.4.0",
|
||||||
"async": "~0.2.9",
|
"async": "~0.2.9",
|
||||||
"donna": "1.0.10",
|
"donna": "1.0.10",
|
||||||
"formidable": "~1.0.14",
|
"formidable": "~1.0.14",
|
||||||
|
@ -22,7 +22,7 @@ module.exports = (grunt) ->
|
|||||||
mkdir appDir
|
mkdir appDir
|
||||||
|
|
||||||
if process.platform isnt 'win32'
|
if process.platform isnt 'win32'
|
||||||
cp 'atom.sh', path.join(appDir, 'atom.sh')
|
cp 'atom.sh', path.resolve(appDir, '..', 'atom.sh')
|
||||||
|
|
||||||
cp 'package.json', path.join(appDir, 'package.json')
|
cp 'package.json', path.join(appDir, 'package.json')
|
||||||
|
|
||||||
@ -147,9 +147,9 @@ module.exports = (grunt) ->
|
|||||||
cp 'src', path.join(appDir, 'src'), filter: /.+\.(cson|coffee)$/
|
cp 'src', path.join(appDir, 'src'), filter: /.+\.(cson|coffee)$/
|
||||||
cp 'static', path.join(appDir, 'static')
|
cp 'static', path.join(appDir, 'static')
|
||||||
|
|
||||||
cp path.join('apm', 'node_modules', 'atom-package-manager'), path.join(appDir, 'apm'), filter: filterNodeModule
|
cp path.join('apm', 'node_modules', 'atom-package-manager'), path.resolve(appDir, '..', 'apm'), filter: filterNodeModule
|
||||||
if process.platform isnt 'win32'
|
if process.platform isnt 'win32'
|
||||||
fs.symlinkSync(path.join('..', '..', 'bin', 'apm'), path.join(appDir, 'apm', 'node_modules', '.bin', 'apm'))
|
fs.symlinkSync(path.join('..', '..', 'bin', 'apm'), path.resolve(appDir, '..', 'apm', 'node_modules', '.bin', 'apm'))
|
||||||
|
|
||||||
if process.platform is 'darwin'
|
if process.platform is 'darwin'
|
||||||
grunt.file.recurse path.join('resources', 'mac'), (sourcePath, rootDirectory, subDirectory='', filename) ->
|
grunt.file.recurse path.join('resources', 'mac'), (sourcePath, rootDirectory, subDirectory='', filename) ->
|
||||||
|
19
build/tasks/generate-asar-task.coffee
Normal file
19
build/tasks/generate-asar-task.coffee
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
asar = require 'asar'
|
||||||
|
fs = require 'fs'
|
||||||
|
path = require 'path'
|
||||||
|
|
||||||
|
module.exports = (grunt) ->
|
||||||
|
{rm} = require('./task-helpers')(grunt)
|
||||||
|
|
||||||
|
grunt.registerTask 'generate-asar', 'Generate asar archive for the app', ->
|
||||||
|
done = @async()
|
||||||
|
|
||||||
|
appDir = grunt.config.get('atom.appDir')
|
||||||
|
unless fs.existsSync(appDir)
|
||||||
|
grunt.log.error 'The app has to be built before generating asar archive.'
|
||||||
|
return done(false)
|
||||||
|
|
||||||
|
asar.createPackageWithOptions appDir, path.resolve(appDir, '..', 'app.asar'), {unpack: '*.node'}, (err) ->
|
||||||
|
return done(err) if err?
|
||||||
|
rm appDir
|
||||||
|
done()
|
@ -17,7 +17,7 @@ module.exports = (grunt) ->
|
|||||||
|
|
||||||
licenseText = getLicenseText(dependencyLicenses)
|
licenseText = getLicenseText(dependencyLicenses)
|
||||||
if mode is 'save'
|
if mode is 'save'
|
||||||
targetPath = path.join(grunt.config.get('atom.appDir'), 'LICENSE.md')
|
targetPath = path.resolve(grunt.config.get('atom.appDir'), '..', 'LICENSE.md')
|
||||||
fs.writeFileSync(targetPath, licenseText)
|
fs.writeFileSync(targetPath, licenseText)
|
||||||
else
|
else
|
||||||
console.log licenseText
|
console.log licenseText
|
||||||
|
@ -33,7 +33,7 @@ cp "$ICON_FILE" "$TARGET/usr/share/pixmaps"
|
|||||||
|
|
||||||
# Copy generated LICENSE.md to /usr/share/doc/atom/copyright
|
# Copy generated LICENSE.md to /usr/share/doc/atom/copyright
|
||||||
mkdir -m $FILE_MODE -p "$TARGET/usr/share/doc/atom"
|
mkdir -m $FILE_MODE -p "$TARGET/usr/share/doc/atom"
|
||||||
cp "$TARGET/usr/share/atom/resources/app/LICENSE.md" "$TARGET/usr/share/doc/atom/copyright"
|
cp "$TARGET/usr/share/atom/resources/LICENSE.md" "$TARGET/usr/share/doc/atom/copyright"
|
||||||
|
|
||||||
# Add lintian overrides
|
# Add lintian overrides
|
||||||
mkdir -m $FILE_MODE -p "$TARGET/usr/share/lintian/overrides"
|
mkdir -m $FILE_MODE -p "$TARGET/usr/share/lintian/overrides"
|
||||||
|
@ -215,7 +215,7 @@ class Atom extends Model
|
|||||||
|
|
||||||
if openDevTools
|
if openDevTools
|
||||||
@openDevTools()
|
@openDevTools()
|
||||||
@executeJavaScriptInDevTools('InspectorFrontendAPI.showConsole()')
|
@executeJavaScriptInDevTools('DevToolsAPI.showConsole()')
|
||||||
|
|
||||||
@emit 'uncaught-error', arguments... if includeDeprecatedAPIs
|
@emit 'uncaught-error', arguments... if includeDeprecatedAPIs
|
||||||
@emitter.emit 'did-throw-error', {message, url, line, column, originalError}
|
@emitter.emit 'did-throw-error', {message, url, line, column, originalError}
|
||||||
@ -577,9 +577,9 @@ class Atom extends Model
|
|||||||
{resourcePath, safeMode} = @getLoadSettings()
|
{resourcePath, safeMode} = @getLoadSettings()
|
||||||
|
|
||||||
CommandInstaller = require './command-installer'
|
CommandInstaller = require './command-installer'
|
||||||
CommandInstaller.installAtomCommand resourcePath, false, (error) ->
|
CommandInstaller.installAtomCommand false, (error) ->
|
||||||
console.warn error.message if error?
|
console.warn error.message if error?
|
||||||
CommandInstaller.installApmCommand resourcePath, false, (error) ->
|
CommandInstaller.installApmCommand false, (error) ->
|
||||||
console.warn error.message if error?
|
console.warn error.message if error?
|
||||||
|
|
||||||
dimensions = @restoreWindowDimensions()
|
dimensions = @restoreWindowDimensions()
|
||||||
|
@ -196,7 +196,7 @@ class AtomApplication
|
|||||||
@openPathOnEvent('application:open-your-keymap', 'atom://.atom/keymap')
|
@openPathOnEvent('application:open-your-keymap', 'atom://.atom/keymap')
|
||||||
@openPathOnEvent('application:open-your-snippets', 'atom://.atom/snippets')
|
@openPathOnEvent('application:open-your-snippets', 'atom://.atom/snippets')
|
||||||
@openPathOnEvent('application:open-your-stylesheet', 'atom://.atom/stylesheet')
|
@openPathOnEvent('application:open-your-stylesheet', 'atom://.atom/stylesheet')
|
||||||
@openPathOnEvent('application:open-license', path.join(@resourcePath, 'LICENSE.md'))
|
@openPathOnEvent('application:open-license', path.join(process.resourcesPath, 'LICENSE.md'))
|
||||||
|
|
||||||
app.on 'window-all-closed', ->
|
app.on 'window-all-closed', ->
|
||||||
app.quit() if process.platform in ['win32', 'linux']
|
app.quit() if process.platform in ['win32', 'linux']
|
||||||
|
@ -142,7 +142,7 @@ addCommandsToPath = (callback) ->
|
|||||||
atomShCommand = "#!/bin/sh\r\n\"$0/../#{relativeAtomShPath.replace(/\\/g, '/')}\" \"$@\""
|
atomShCommand = "#!/bin/sh\r\n\"$0/../#{relativeAtomShPath.replace(/\\/g, '/')}\" \"$@\""
|
||||||
|
|
||||||
apmCommandPath = path.join(binFolder, 'apm.cmd')
|
apmCommandPath = path.join(binFolder, 'apm.cmd')
|
||||||
relativeApmPath = path.relative(binFolder, path.join(process.resourcesPath, 'app', 'apm', 'bin', 'apm.cmd'))
|
relativeApmPath = path.relative(binFolder, path.join(process.resourcesPath, 'apm', 'bin', 'apm.cmd'))
|
||||||
apmCommand = "@echo off\r\n\"%~dp0\\#{relativeApmPath}\" %*"
|
apmCommand = "@echo off\r\n\"%~dp0\\#{relativeApmPath}\" %*"
|
||||||
|
|
||||||
apmShCommandPath = path.join(binFolder, 'apm')
|
apmShCommandPath = path.join(binFolder, 'apm')
|
||||||
|
@ -36,12 +36,11 @@ module.exports =
|
|||||||
message: "Failed to install shell commands"
|
message: "Failed to install shell commands"
|
||||||
detailedMessage: error.message
|
detailedMessage: error.message
|
||||||
|
|
||||||
resourcePath = atom.getLoadSettings().resourcePath
|
@installAtomCommand true, (error) =>
|
||||||
@installAtomCommand resourcePath, true, (error) =>
|
|
||||||
if error?
|
if error?
|
||||||
showErrorDialog(error)
|
showErrorDialog(error)
|
||||||
else
|
else
|
||||||
@installApmCommand resourcePath, true, (error) ->
|
@installApmCommand true, (error) ->
|
||||||
if error?
|
if error?
|
||||||
showErrorDialog(error)
|
showErrorDialog(error)
|
||||||
else
|
else
|
||||||
@ -49,12 +48,12 @@ module.exports =
|
|||||||
message: "Commands installed."
|
message: "Commands installed."
|
||||||
detailedMessage: "The shell commands `atom` and `apm` are installed."
|
detailedMessage: "The shell commands `atom` and `apm` are installed."
|
||||||
|
|
||||||
installAtomCommand: (resourcePath, askForPrivilege, callback) ->
|
installAtomCommand: (askForPrivilege, callback) ->
|
||||||
commandPath = path.join(resourcePath, 'atom.sh')
|
commandPath = path.join(process.resourcesPath, 'atom.sh')
|
||||||
@createSymlink commandPath, askForPrivilege, callback
|
@createSymlink commandPath, askForPrivilege, callback
|
||||||
|
|
||||||
installApmCommand: (resourcePath, askForPrivilege, callback) ->
|
installApmCommand: (askForPrivilege, callback) ->
|
||||||
commandPath = path.join(resourcePath, 'apm', 'node_modules', '.bin', 'apm')
|
commandPath = path.join(process.resourcesPath, 'apm', 'node_modules', '.bin', 'apm')
|
||||||
@createSymlink commandPath, askForPrivilege, callback
|
@createSymlink commandPath, askForPrivilege, callback
|
||||||
|
|
||||||
createSymlink: (commandPath, askForPrivilege, callback) ->
|
createSymlink: (commandPath, askForPrivilege, callback) ->
|
||||||
|
@ -111,7 +111,7 @@ class PackageManager
|
|||||||
|
|
||||||
commandName = 'apm'
|
commandName = 'apm'
|
||||||
commandName += '.cmd' if process.platform is 'win32'
|
commandName += '.cmd' if process.platform is 'win32'
|
||||||
apmRoot = path.resolve(__dirname, '..', 'apm')
|
apmRoot = path.join(process.resourcesPath, 'apm')
|
||||||
@apmPath = path.join(apmRoot, 'bin', commandName)
|
@apmPath = path.join(apmRoot, 'bin', commandName)
|
||||||
unless fs.isFileSync(@apmPath)
|
unless fs.isFileSync(@apmPath)
|
||||||
@apmPath = path.join(apmRoot, 'node_modules', 'atom-package-manager', 'bin', commandName)
|
@apmPath = path.join(apmRoot, 'node_modules', 'atom-package-manager', 'bin', commandName)
|
||||||
|
@ -83,7 +83,7 @@ class Task
|
|||||||
taskPath = taskPath.replace(/\\/g, "\\\\")
|
taskPath = taskPath.replace(/\\/g, "\\\\")
|
||||||
|
|
||||||
env = _.extend({}, process.env, {taskPath, userAgent: navigator.userAgent})
|
env = _.extend({}, process.env, {taskPath, userAgent: navigator.userAgent})
|
||||||
@childProcess = fork '--eval', [bootstrap], {env, cwd: __dirname}
|
@childProcess = fork '--eval', [bootstrap], {env, silent: true}
|
||||||
|
|
||||||
@on "task:log", -> console.log(arguments...)
|
@on "task:log", -> console.log(arguments...)
|
||||||
@on "task:warn", -> console.warn(arguments...)
|
@on "task:warn", -> console.warn(arguments...)
|
||||||
@ -100,6 +100,11 @@ class Task
|
|||||||
@childProcess.removeAllListeners()
|
@childProcess.removeAllListeners()
|
||||||
@childProcess.on 'message', ({event, args}) =>
|
@childProcess.on 'message', ({event, args}) =>
|
||||||
@emit(event, args...) if @childProcess?
|
@emit(event, args...) if @childProcess?
|
||||||
|
# Catch the errors that happened before task-bootstrap.
|
||||||
|
@childProcess.stdout.on 'data', (data) ->
|
||||||
|
console.log data.toString()
|
||||||
|
@childProcess.stderr.on 'data', (data) ->
|
||||||
|
console.error data.toString()
|
||||||
|
|
||||||
# Public: Starts the task.
|
# Public: Starts the task.
|
||||||
#
|
#
|
||||||
|
Loading…
Reference in New Issue
Block a user