function downloadPackage()

in utils/aempackager.js [98:139]


function downloadPackage(data) {
  logger.log('Downloading AEM package', data.package, 'from', data.url, 'to', data.destination);
  if(data.filePath) {
      data.download = true;
      data.serviceURL = data.url + endpoint + '?cmd=get&name='+data.package;
      logger.debug(data.package, "to", data.filePath);
      callService(data, (error, response) => {
          if(error) {
              logger.error("Unable to download package.");
              process.exit(1);
          } else {
              if(fs.existsSync(data.filePath)) {
                  var stats = fs.statSync(data.filePath);
                  logger.log("Package downloaded.");
                  logger.log(stats.size + " " + data.filePath);
              }
          }
      }, true).pipe(fs.createWriteStream(data.filePath));
  } else {
      data.download = false;
      data.serviceURL = data.url + endpoint + '?cmd=ls';
      callService(data, (error, result) => {
          if(error) {
              logger.error("Unable to download package.");
              process.exit(1);
          } else if(result) {
              var packages = getData(result)[0].packages[0].package;
              for (var i = 0; i < packages.length; i++) {
                var pack = packages[i];
                if(pack.name[0] === data.package || pack.downloadName[0] === data.package) {
                  let fileName = packages[i].downloadName[0];
                  let filePath = path.join(data.destination, fileName);
                  data.filePath = filePath;
                  data.package = packages[i].name[0];
                  downloadPackage(data);
                  return;
                }
              }
          }
      }, true);
  }
}