Github user jasongin commented on a diff in the pull request: https://github.com/apache/cordova-android/pull/295#discussion_r61504885 --- Diff: bin/templates/cordova/lib/prepare.js --- @@ -84,29 +101,49 @@ function updateConfigFilesFrom(sourceConfig, configMunger, locations) { } /** + * Logs all file operations via the verbose event stream, indented. + */ +function logFileOp(message) { + events.emit('verbose', ' ' + message); +} + +/** * Updates platform 'www' directory by replacing it with contents of * 'platform_www' and app www. Also copies project's overrides' folder into * the platform 'www' folder * * @param {Object} cordovaProject An object which describes cordova project. - * @param {Object} destinations An object that contains destination - * paths for www files. */ -function updateWwwFrom(cordovaProject, destinations) { - shell.rm('-rf', destinations.www); - shell.mkdir('-p', destinations.www); - // Copy source files from project's www directory - shell.cp('-rf', path.join(cordovaProject.locations.www, '*'), destinations.www); - // Override www sources by files in 'platform_www' directory - shell.cp('-rf', path.join(destinations.platformWww, '*'), destinations.www); +function updateWww(cordovaProject) { + var sourceDirs = [ + path.relative(cordovaProject.root, cordovaProject.locations.www), + path.relative(cordovaProject.root, this.locations.platformWww) + ]; // If project contains 'merges' for our platform, use them as another overrides var merges_path = path.join(cordovaProject.root, 'merges', 'android'); if (fs.existsSync(merges_path)) { events.emit('verbose', 'Found "merges" for android platform. Copying over existing "www" files.'); - var overrides = path.join(merges_path, '*'); - shell.cp('-rf', overrides, destinations.www); + sourceDirs.push(path.join('merges', 'android')); } + + var targetDir = path.relative(cordovaProject.root, this.locations.www); + events.emit( + 'verbose', "Merging and updating files from [" + sourceDirs.join(", ") + "] to " + targetDir); + FileUpdater.mergeAndUpdateDir( + sourceDirs, targetDir, { rootDir: cordovaProject.root }, logFileOp); +} + +/** + * Cleans all files from the platform 'www' directory. + */ +function cleanWww(projectRoot) { + var targetDir = path.relative(projectRoot, this.locations.www); + events.emit('verbose', "Cleaning " + targetDir); + + // No source paths are specified, so mergeAndUpdateDir() will clear the target directory. + FileUpdater.mergeAndUpdateDir( + [], targetDir, { rootDir: projectRoot, all: true }, logFileOp); --- End diff -- I was mostly going for consistent logging: why log some file operations but not others? Our customer feedback indicates they would like more visibility into the cordova build process, and this kind of verbose logging will help with that. Anyway this is going away now that I'm removing the clean function.
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. --- --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org For additional commands, e-mail: dev-h...@cordova.apache.org