Skip to content

Commit 4577e41

Browse files
committed
Implement the packageRewriteComposer function
1 parent cb61879 commit 4577e41

1 file changed

Lines changed: 20 additions & 6 deletions

File tree

tasks/package.js

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,28 @@ module.exports = function(grunt) {
1212
grunt.registerTask('packageRewriteComposer', '', function() {
1313
var pathBuild = grunt.config('config.buildPaths.html');
1414
var pathPackage = grunt.config('config.packages.dest.docroot');
15+
// Check if we are packaging to a custom destination.
1516
if (pathBuild !== pathPackage) {
17+
var changed = false;
18+
var regex = new RegExp('^' + pathBuild);
1619
// Load `composer.json` as JSON, convert to object.
17-
18-
// Alter keys in `extra.installer-paths` object to change `build/html`
19-
// to `html` or an alternative path from the config.
20-
21-
// Write out data to `composer.json` in the package output.
22-
20+
var composer = grunt.file.readJSON('composer.json');
21+
for (var key in composer.extra['installer-paths']) {
22+
var newKey = key.replace(regex, pathPackage);
23+
if (newKey != key) {
24+
// Alter keys in `extra.installer-paths` object to change `build/html`
25+
// to `html` or an alternative path from the config.
26+
var value = composer.extra['installer-paths'][key];
27+
delete composer.extra['installer-paths'][key];
28+
composer.extra['installer-paths'][newKey] = value;
29+
changed = true;
30+
}
31+
}
32+
if (changed) {
33+
// Write out data to `composer.json` in the package output.
34+
var composerString = JSON.stringify(composer, null, 2);
35+
grunt.file.write('composer.json', composerString);
36+
}
2337
}
2438
});
2539

0 commit comments

Comments
 (0)