diff --git a/cli.js b/cli.js index 04dcbf8..8e6cc6a 100755 --- a/cli.js +++ b/cli.js @@ -5,6 +5,15 @@ var packager = require('./') args.dir = args._[0] args.name = args._[1] +var protocolSchemes = args.protocol +var protocolNames = args['protocol-names'] + +if (protocolSchemes && protocolNames && protocolNames.length === protocolSchemes.length) { + args.protocol = protocolSchemes.map(function (scheme, i) { + return {schemes: [scheme], name: protocolNames[i]} + }) +} + if (!args.dir || !args.name) { console.error('Usage: atom-shell-packager ') process.exit(1) diff --git a/index.js b/index.js index ca4a239..2f4f11a 100644 --- a/index.js +++ b/index.js @@ -57,6 +57,15 @@ module.exports = function packager (opts, cb) { pl2.CFBundleIdentifier = bundleHelperId pl2.CFBundleName = opts.name + if (opts.protocols) { + pl2.CFBundleURLTypes = pl1.CFBundleURLTypes = opts.protocols.map(function (protocol) { + return { + CFBundleURLName: protocol.name, + CFBundleURLSchemes: [].concat(protocol.schemes) + } + }) + } + fs.writeFileSync(paths.info1, plist.build(pl1)) fs.writeFileSync(paths.info2, plist.build(pl2))