From beb215529517077029cb1e7b9547fb43b37294ca Mon Sep 17 00:00:00 2001
From: Bryan MacFarlane <bryanmacfarlane@github.com>
Date: Sun, 3 May 2020 18:22:18 -0400
Subject: [PATCH] testing 7z alt

---
 dist/index.js    | 9 +++++++--
 src/installer.ts | 8 ++++++--
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/dist/index.js b/dist/index.js
index f277e927..82f28468 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -12975,6 +12975,7 @@ const io = __importStar(__webpack_require__(1));
 const tc = __importStar(__webpack_require__(533));
 const path = __importStar(__webpack_require__(622));
 const semver = __importStar(__webpack_require__(280));
+const fs = __webpack_require__(747);
 function getNode(versionSpec, stable, token) {
     return __awaiter(this, void 0, void 0, function* () {
         let osPlat = os.platform();
@@ -13017,7 +13018,10 @@ function getNode(versionSpec, stable, token) {
                 let _7zPath = path.join(__dirname, '..', 'externals', '7zr.exe');
                 extPath = yield tc.extract7z(downloadPath, undefined, _7zPath);
                 // 7z extracts to folder matching file name
-                extPath = path.join(extPath, path.basename(info.fileName, '.7z'));
+                let nestedPath = path.join(extPath, path.basename(info.fileName, '.7z'));
+                if (fs.statSync(nestedPath) && fs.statSync(nestedPath).isDirectory()) {
+                    extPath = nestedPath;
+                }
             }
             else {
                 extPath = yield tc.extractTar(downloadPath, undefined, [
@@ -13048,7 +13052,8 @@ exports.getNode = getNode;
 function getInfoFromManifest(versionSpec, stable, token) {
     return __awaiter(this, void 0, void 0, function* () {
         let info = null;
-        const releases = yield tc.getManifestFromRepo('actions', 'node-versions', token);
+        const releases = yield tc.getManifestFromRepo('actions', 'node-versions', token, 'update-versions-manifest-file' // TODO: remove after testing
+        );
         console.log(`matching ${versionSpec}...`);
         const rel = yield tc.findFromManifest(versionSpec, stable, releases);
         if (rel && rel.files.length > 0) {
diff --git a/src/installer.ts b/src/installer.ts
index bd3094f1..1857e762 100644
--- a/src/installer.ts
+++ b/src/installer.ts
@@ -79,7 +79,10 @@ export async function getNode(
       let _7zPath = path.join(__dirname, '..', 'externals', '7zr.exe');
       extPath = await tc.extract7z(downloadPath, undefined, _7zPath);
       // 7z extracts to folder matching file name
-      extPath = path.join(extPath, path.basename(info.fileName, '.7z'));
+      let nestedPath = path.join(extPath, path.basename(info.fileName, '.7z'));
+      if (fs.statSync(nestedPath) && fs.statSync(nestedPath).isDirectory()) {
+        extPath = nestedPath;
+      }
     } else {
       extPath = await tc.extractTar(downloadPath, undefined, [
         'xz',
@@ -117,7 +120,8 @@ async function getInfoFromManifest(
   const releases = await tc.getManifestFromRepo(
     'actions',
     'node-versions',
-    token
+    token,
+    'update-versions-manifest-file' // TODO: remove after testing
   );
   console.log(`matching ${versionSpec}...`);
   const rel = await tc.findFromManifest(versionSpec, stable, releases);