Files

37 lines
953 B
JavaScript

'use strict';
var os = require('os');
var bplist = require('bplist-parser');
var untildify = require('untildify');
var bundleId = 'com.apple.Safari';
var osxVersion = Number(os.release().split('.')[0]);
var file = untildify(osxVersion >= 14 ? '~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist' : '~/Library/Preferences/com.apple.LaunchServices.plist');
module.exports = function (cb) {
if (process.platform !== 'darwin') {
throw new Error('Only OS X systems are supported');
}
bplist.parseFile(file, function (err, data) {
if (err) {
return cb(err);
}
var handlers = data && data[0].LSHandlers;
if (!handlers || handlers.length === 0) {
return cb(null, bundleId);
}
for (var i = 0; i < handlers.length; i++) {
var el = handlers[i];
if (el.LSHandlerURLScheme === 'http' && el.LSHandlerRoleAll) {
bundleId = el.LSHandlerRoleAll;
break;
}
}
cb(null, bundleId);
});
};