Github user vladimir-kotikov commented on a diff in the pull request:

    https://github.com/apache/cordova-android/pull/295#discussion_r61388100
  
    --- 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 --
    
    Passing logger function here would produce a lot of output if `www` 
contains a lot of files. IMO everything that end user would need to know is 
that we're going to wipe all `www` contents


---
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 [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to