diff --git a/.gitignore b/.gitignore index 7103ce579..1257ab371 100644 --- a/.gitignore +++ b/.gitignore @@ -13,5 +13,3 @@ debug.log docs/output docs/includes spec/fixtures/evil-files/ -resources/linux/Atom.desktop -resources/linux/debian/control diff --git a/build/package.json b/build/package.json index 91a7e30f9..8b2d55027 100644 --- a/build/package.json +++ b/build/package.json @@ -14,8 +14,8 @@ "grunt": "~0.4.1", "grunt-cli": "~0.1.9", "grunt-coffeelint": "git+https://github.com/atom/grunt-coffeelint.git", - "grunt-contrib-csslint": "~0.1.2", "grunt-contrib-coffee": "~0.9.0", + "grunt-contrib-csslint": "~0.1.2", "grunt-contrib-less": "~0.8.0", "grunt-cson": "0.8.0", "grunt-download-atom-shell": "~0.8.0", @@ -27,15 +27,15 @@ "json-front-matter": "~0.1.3", "legal-eagle": "~0.4.0", "minidump": "~0.7", - "read-package-json": "1.1.8", "normalize-package-data": "0.2.12", + "npm": "~1.4.5", "rcedit": "~0.1.2", + "read-package-json": "1.1.8", "request": "~2.27.0", "rimraf": "~2.2.2", "runas": "0.5.x", "underscore-plus": "1.x", "unzip": "~0.1.9", - "vm-compatibility-layer": "~0.1.0", - "npm": "~1.4.5" + "vm-compatibility-layer": "~0.1.0" } } diff --git a/build/tasks/install-task.coffee b/build/tasks/install-task.coffee index d3a3aa010..13d349a50 100644 --- a/build/tasks/install-task.coffee +++ b/build/tasks/install-task.coffee @@ -4,17 +4,13 @@ _ = require 'underscore-plus' fs = require 'fs-plus' runas = null -fillTemplate = (filePath, data) -> - template = _.template(String(fs.readFileSync(filePath + '.in'))) - filled = template(data) - fs.writeFileSync(filePath, filled) - module.exports = (grunt) -> {cp, mkdir, rm} = require('./task-helpers')(grunt) grunt.registerTask 'install', 'Install the built application', -> installDir = grunt.config.get('atom.installDir') shellAppDir = grunt.config.get('atom.shellAppDir') + if process.platform is 'win32' runas ?= require 'runas' copyFolder = path.resolve 'script', 'copy-folder.cmd' @@ -32,7 +28,6 @@ module.exports = (grunt) -> shareDir = path.join(installDir, 'share', 'atom') iconName = path.join(shareDir,'resources','app','resources','atom.png') - desktopFile = path.join('resources', 'linux', 'Atom.desktop') mkdir binDir cp 'atom.sh', path.join(binDir, 'atom') @@ -42,13 +37,17 @@ module.exports = (grunt) -> # Create Atom.desktop if installation not in temporary folder tmpDir = if process.env.TMPDIR? then process.env.TMPDIR else '/tmp' - desktopInstallFile = path.join(installDir,'share','applications','Atom.desktop') if installDir.indexOf(tmpDir) isnt 0 - mkdir path.dirname(desktopInstallFile) + desktopFile = path.join('resources', 'linux', 'Atom.desktop.in') + desktopInstallFile = path.join(installDir, 'share', 'applications', 'Atom.desktop') + {description} = grunt.file.readJSON('package.json') - installDir = path.join(installDir,'.') # To prevent "Exec=/usr/local//share/atom/atom" - fillTemplate(desktopFile, {description, installDir, iconName}) - cp desktopFile, desktopInstallFile + iconName = path.join(shareDir, 'resources', 'app', 'resources', 'atom.png') + installDir = path.join(installDir, '.') # To prevent "Exec=/usr/local//share/atom/atom" + template = _.template(String(fs.readFileSync(desktopFile))) + filled = template({description, installDir, iconName}) + + grunt.file.write(desktopInstallFile, filled) # Create relative symbol link for apm. process.chdir(binDir) diff --git a/build/tasks/mkdeb-task.coffee b/build/tasks/mkdeb-task.coffee index 090168446..ccf20b790 100644 --- a/build/tasks/mkdeb-task.coffee +++ b/build/tasks/mkdeb-task.coffee @@ -2,14 +2,17 @@ fs = require 'fs' path = require 'path' _ = require 'underscore-plus' -fillTemplate = (filePath, data) -> - template = _.template(String(fs.readFileSync(filePath + '.in'))) - filled = template(data) - fs.writeFileSync(filePath, filled) - module.exports = (grunt) -> {spawn} = require('./task-helpers')(grunt) + fillTemplate = (filePath, data) -> + template = _.template(String(fs.readFileSync("#{filePath}.in"))) + filled = template(data) + + outputPath = path.join(grunt.config.get('atom.buildDir'), path.basename(filePath)) + grunt.file.write(outputPath, filled) + outputPath + grunt.registerTask 'mkdeb', 'Create debian package', -> done = @async() @@ -27,13 +30,11 @@ module.exports = (grunt) -> iconName = 'atom' data = {name, version, description, section, arch, maintainer, installDir, iconName} - control = path.join('resources', 'linux', 'debian', 'control') - fillTemplate(control, data) - desktop = path.join('resources', 'linux', 'Atom.desktop') - fillTemplate(desktop, data) + controlFilePath = fillTemplate(path.join('resources', 'linux', 'debian', 'control'), data) + desktopFilePath = fillTemplate(path.join('resources', 'linux', 'Atom.desktop'), data) icon = path.join('resources', 'atom.png') buildDir = grunt.config.get('atom.buildDir') cmd = path.join('script', 'mkdeb') - args = [version, arch, control, desktop, icon, buildDir] + args = [version, arch, controlFilePath, desktopFilePath, icon, buildDir] spawn({cmd, args}, done)