#!/usr/bin/env node 'use strict' // Needed so we can require src/module-cache.coffee during generateModuleCache require('coffee-script/register') require('colors') const argv = require('yargs').argv const cleanOutputDirectory = require('./lib/clean-output-directory') const codeSignOnMac = require('./lib/code-sign-on-mac') const copyAssets = require('./lib/copy-assets') const createWindowsInstaller = require('./lib/create-windows-installer') const dumpSymbols = require('./lib/dump-symbols') const generateAPIDocs = require('./lib/generate-api-docs') const generateMetadata = require('./lib/generate-metadata') const generateModuleCache = require('./lib/generate-module-cache') const installApplication = require('./lib/install-application') const packageApplication = require('./lib/package-application') const prebuildLessCache = require('./lib/prebuild-less-cache') const transpileBabelPaths = require('./lib/transpile-babel-paths') const transpileCoffeeScriptPaths = require('./lib/transpile-coffee-script-paths') const transpileCsonPaths = require('./lib/transpile-cson-paths') const transpilePegJsPaths = require('./lib/transpile-peg-js-paths') process.on('unhandledRejection', function (e) { console.error(e) process.exit(1) }) cleanOutputDirectory() copyAssets() transpileBabelPaths() transpileCoffeeScriptPaths() transpileCsonPaths() transpilePegJsPaths() generateModuleCache() prebuildLessCache() generateMetadata() generateAPIDocs() dumpSymbols() .then(packageApplication) .then(packagedAppPath => { if (process.platform === 'darwin') { if (argv.codeSign) { codeSignOnMac(packagedAppPath) } else { console.log('Skipping code-signing. Specify the --code-sign option to perform code-signing'.gray) } return Promise.resolve(packagedAppPath) } else if (process.platform === 'win32') { return createWindowsInstaller(packagedAppPath, argv.codeSign).then(() => packagedAppPath) } }).then(packagedAppPath => { if (argv.install) { installApplication(packagedAppPath) } else { console.log('Skipping installation. Specify the --install option to install Atom'.gray) } })