src/installer.js
function (options, dir, callback) {
  var desktopSrc = path.resolve(__dirname, '../resources/desktop.ejs')
  var desktopDest = path.join(dir, 'share/applications', options.id + '.desktop')
  options.logger('Creating desktop file at ' + desktopDest)

  async.waterfall([
    async.apply(generateTemplate, options, desktopSrc),
    async.apply(fs.outputFile, desktopDest)
  ], function (err) {
    callback(err && new Error('Error creating desktop file: ' + (err.message || err)))
  })
}
function (options, dir, callback) {
  var desktopSrc = path.resolve(__dirname, '../resources/desktop.ejs')
  var desktopDest = path.join(dir, 'share/applications', options.id + '.desktop')
  options.logger('Creating desktop file at ' + desktopDest)

  async.waterfall([
    async.apply(generateTemplate, options, desktopSrc),
    async.apply(fs.outputFile, desktopDest)
  ], function (err) {
    callback(err && new Error('Error creating desktop file: ' + (err.message || err)))
  })
}
function ( options , dir , callback ) { var desktopSrc = path . resolve ( __dirname , '../resources/desktop.ejs' ) var desktopDest = path . join ( dir , 'share/applications' , options . id + '.desktop' ) options . logger ( 'Creating desktop file at ' + desktopDest ) async . waterfall ( [ async . apply ( generateTemplate , options , desktopSrc ) , async . apply ( fs . outputFile , desktopDest ) ] , function ( err ) { callback ( err && new Error ( 'Error creating desktop file: ' + ( err . message || err ) ) ) } ) }
Create the desktop file for the package.

See: http://standards.freedesktop.org/desktop-entry-spec/latest/
Create the desktop file for the package .