mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-11-10 10:17:11 +03:00
60 lines
2.0 KiB
CoffeeScript
60 lines
2.0 KiB
CoffeeScript
path = require 'path'
|
|
|
|
module.exports = (grunt) ->
|
|
{spawn, fillTemplate} = require('./task-helpers')(grunt)
|
|
|
|
grunt.registerTask 'mkdeb', 'Create debian package', ->
|
|
done = @async()
|
|
|
|
appName = grunt.config.get('atom.appName')
|
|
appFileName = grunt.config.get('atom.appFileName')
|
|
apmFileName = grunt.config.get('atom.apmFileName')
|
|
buildDir = grunt.config.get('atom.buildDir')
|
|
installDir = '/usr'
|
|
shellAppDir = grunt.config.get('atom.shellAppDir')
|
|
{version, description} = grunt.config.get('atom.metadata')
|
|
channel = grunt.config.get('atom.channel')
|
|
|
|
if process.arch is 'ia32'
|
|
arch = 'i386'
|
|
else if process.arch is 'x64'
|
|
arch = 'amd64'
|
|
else
|
|
return done("Unsupported arch #{process.arch}")
|
|
|
|
desktopFilePath = path.join(buildDir, appFileName + '.desktop')
|
|
fillTemplate(
|
|
path.join('resources', 'linux', 'atom.desktop.in'),
|
|
desktopFilePath,
|
|
{appName, appFileName, description, installDir, iconPath: appFileName}
|
|
)
|
|
|
|
getInstalledSize shellAppDir, (error, installedSize) ->
|
|
if error?
|
|
return done(error)
|
|
|
|
controlFilePath = path.join(buildDir, 'control')
|
|
fillTemplate(
|
|
path.join('resources', 'linux', 'debian', 'control.in'),
|
|
controlFilePath,
|
|
{appFileName, version, arch, installedSize, description}
|
|
)
|
|
|
|
iconPath = path.join(shellAppDir, 'resources', 'app.asar.unpacked', 'resources', 'atom.png')
|
|
|
|
cmd = path.join('script', 'mkdeb')
|
|
args = [appFileName, version, channel, arch, controlFilePath, desktopFilePath, iconPath, buildDir]
|
|
spawn {cmd, args}, (error) ->
|
|
if error?
|
|
done(error)
|
|
else
|
|
grunt.log.ok "Created #{buildDir}/#{appFileName}-#{version}-#{arch}.deb"
|
|
done()
|
|
|
|
getInstalledSize = (directory, callback) ->
|
|
cmd = 'du'
|
|
args = ['-sk', directory]
|
|
spawn {cmd, args}, (error, {stdout}) ->
|
|
installedSize = stdout.split(/\s+/)?[0] or '200000' # default to 200MB
|
|
callback(null, installedSize)
|