|
| 1 | +module.exports = function(context) { |
| 2 | + var fs = context.requireCordovaModule('fs'), |
| 3 | + et = context.requireCordovaModule('elementtree'), |
| 4 | + path = context.requireCordovaModule('path'), |
| 5 | + xml= context.requireCordovaModule('cordova-common').xmlHelpers, |
| 6 | + projectRoot = path.join(context.opts.projectRoot, "platforms", "windows"); |
| 7 | + |
| 8 | + var MANIFEST_WINDOWS = 'package.windows.appxmanifest', |
| 9 | + MANIFEST_PHONE = 'package.phone.appxmanifest', |
| 10 | + MANIFEST_WINDOWS10 = 'package.windows10.appxmanifest', |
| 11 | + MANIFEST_WINDOWS80 = 'package.windows80.appxmanifest'; |
| 12 | + |
| 13 | + function updateManifestFile(manifestPath) { |
| 14 | + var doc = xml.parseElementtreeSync(manifestPath); |
| 15 | + var root = doc.getroot(); |
| 16 | + var app = root.find('./Applications/Application'); |
| 17 | + if (!app) { |
| 18 | + throw new Error(manifestPath + ' has incorrect XML structure.'); |
| 19 | + } |
| 20 | + if (!app.find('./Extensions')) { |
| 21 | + app.append(new et.Element('Extensions')); |
| 22 | + } |
| 23 | + fs.writeFileSync(manifestPath, doc.write({indent: 4}), 'utf-8'); |
| 24 | + } |
| 25 | + |
| 26 | + [MANIFEST_PHONE, MANIFEST_WINDOWS80, MANIFEST_WINDOWS, MANIFEST_WINDOWS10] |
| 27 | + .forEach(function(manifestFile) { |
| 28 | + updateManifestFile(path.join(projectRoot, manifestFile)); |
| 29 | + }); |
| 30 | +} |
0 commit comments