From 1cbb6b5144aed082ea02e24bdb16bfd25f68efba Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Fri, 12 Jun 2020 11:17:27 -0500 Subject: [PATCH] Fix error --- src/helpers.js | 112 ++++++++++++++++++++++++------------------------- 1 file changed, 55 insertions(+), 57 deletions(-) diff --git a/src/helpers.js b/src/helpers.js index 69d128f..6067944 100644 --- a/src/helpers.js +++ b/src/helpers.js @@ -62,62 +62,6 @@ const _vcRuntimeExists = () => { }); }; -const _detectRepertoryMounts = (version, providerList) => { - return new Promise((resolve, reject) => { - let mountState = {}; - const defaultData = {}; - for (const provider of providerList) { - defaultData[provider] = { - Active: false, - Location: '', - PID: -1, - }; - } - const grabStatus = index => { - if (index >= providerList.length) { - resolve(mountState); - } else { - const provider = providerList[index]; - const repertoryExec = _getRepertoryExec(version); - const processOptions = { - cwd: repertoryExec.working, - detached: true, - shell: false, - windowsHide: true, - }; - - const args = _getDefaultRepertoryArgs(provider, !Constants.PROVIDER_LIST.includes(provider)); - args.push('-status'); - - const process = new spawn(repertoryExec.cmd, args, processOptions); - let result = ''; - - process.on('error', (err) => { - reject(err); - }); - - process.stdout.on('data', (d) => { - result += d; - }); - - process.on('exit', () => { - mountState[provider] = _tryParse(result, defaultData)[provider]; - if (mountState[provider].Active && - ((mountState[provider].Location === 'elevating') || (mountState[provider].Location === ''))) { - setTimeout(() => { - grabStatus(index); - }, 2000); - } else { - grabStatus(++index); - } - }); - process.unref(); - } - }; - grabStatus(0); - }); -}; - const _executeProcess = (command, working, args=[]) => { return new Promise((resolve, reject) => { let processOptions = { @@ -309,7 +253,61 @@ module.exports.createSignatureFiles = (signature, publicKey) => { }; }; -module.exports.detectRepertoryMounts = _detectRepertoryMounts; +module.exports.detectRepertoryMounts = (version, providerList) => { + return new Promise((resolve, reject) => { + let mountState = {}; + const defaultData = {}; + for (const provider of providerList) { + defaultData[provider] = { + Active: false, + Location: '', + PID: -1, + }; + } + const grabStatus = index => { + if (index >= providerList.length) { + resolve(mountState); + } else { + const provider = providerList[index]; + const repertoryExec = _getRepertoryExec(version); + const processOptions = { + cwd: repertoryExec.working, + detached: true, + shell: false, + windowsHide: true, + }; + + const args = _getDefaultRepertoryArgs(provider, !Constants.PROVIDER_LIST.includes(provider)); + args.push('-status'); + + const process = new spawn(repertoryExec.cmd, args, processOptions); + let result = ''; + + process.on('error', (err) => { + reject(err); + }); + + process.stdout.on('data', (d) => { + result += d; + }); + + process.on('exit', () => { + mountState[provider] = _tryParse(result, defaultData)[provider] || defaultData; + if (mountState[provider].Active && + ((mountState[provider].Location === 'elevating') || (mountState[provider].Location === ''))) { + setTimeout(() => { + grabStatus(index); + }, 2000); + } else { + grabStatus(++index); + } + }); + process.unref(); + } + }; + grabStatus(0); + }); +}; module.exports.downloadFile = (url, destination, progressCallback, completeCallback) => { try {