You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2020/05/07 15:34:38 UTC

[sling-slingpackager] 09/15: Implementing download command.

This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-slingpackager.git

commit b3770980b4ecb0cf73235db050b72c8455e62b67
Author: Henry Saginor <hs...@gmail.com>
AuthorDate: Tue Apr 21 21:16:44 2020 -0700

    Implementing download command.
---
 utils/aempackager.js | 34 +++++++++++++++++++++++-----------
 1 file changed, 23 insertions(+), 11 deletions(-)

diff --git a/utils/aempackager.js b/utils/aempackager.js
index d8ccb32..7b03294 100644
--- a/utils/aempackager.js
+++ b/utils/aempackager.js
@@ -91,14 +91,16 @@ const build = (url, username, password, package, maxRetry) => {
 }
 
 const download = (url, username, password, destination, package, maxRetry) => {
-  logger.log('Downloading AEM package', package, 'from', url, 'to', destination);
   let serviceURL = url + endpoint + '?cmd=get&name='+package;
-  downloadPackag({serviceURL, username, password, destination, package, maxRetry});
+  downloadPackage({url, username, password, destination, package, maxRetry});
 }
 
-function downloadPackag(data) {
-  data.download = true;
+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.");
@@ -110,17 +112,27 @@ function downloadPackag(data) {
                   logger.log(stats.size + " " + data.filePath);
               }
           }
-      }, true).pipe(fs.createWriteStream(data.filePath));;
+      }, true).pipe(fs.createWriteStream(data.filePath));
   } else {
-      callService(data, (error, response) => {
+      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 {
-              let fileName = response.headers['content-disposition'].split('=').reverse()[0];
-              let filePath = path.join(data.destination, fileName);
-              data.filePath = filePath;
-              downloadPackag(data);
+          } 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);
   }