From 62137d6d59c2c2bc10d5e2fec79fa49bad1bdab3 Mon Sep 17 00:00:00 2001 From: Nathan Manceaux-Panot Date: Thu, 23 Jun 2022 20:13:22 +0200 Subject: [PATCH] Wrap index in async IIFE --- source/tasklemon.js | 150 ++++++++++++++++++++++---------------------- 1 file changed, 76 insertions(+), 74 deletions(-) diff --git a/source/tasklemon.js b/source/tasklemon.js index 5802ffe..a1c0767 100755 --- a/source/tasklemon.js +++ b/source/tasklemon.js @@ -105,83 +105,85 @@ function exitIfContainsInvalidArguments(args) { } // Run -const programArgs = parseProgramArguments(process.argv); -const actionsToPerform = getActionsForForArguments(programArgs.lemonArguments); -const scriptFile = new ScriptFile(programArgs.scriptPath); - -// Clear package cache -if (actionsToPerform.clearPackageCache) { - const deletedBundleCount = PackageCache.clearAll(); - - if (deletedBundleCount > 0) { - const deletedBundleCountString = (deletedBundleCount > 1) ? deletedBundleCount + ' bundles' : '1 bundle'; - process.stdout.write(`Cleared package cache (deleted ${deletedBundleCountString}).\n`); - } else { - process.stdout.write('Package cache is already empty.\n'); +(async function() { + const programArgs = parseProgramArguments(process.argv); + const actionsToPerform = getActionsForForArguments(programArgs.lemonArguments); + const scriptFile = new ScriptFile(programArgs.scriptPath); + + // Clear package cache + if (actionsToPerform.clearPackageCache) { + const deletedBundleCount = PackageCache.clearAll(); + + if (deletedBundleCount > 0) { + const deletedBundleCountString = (deletedBundleCount > 1) ? deletedBundleCount + ' bundles' : '1 bundle'; + process.stdout.write(`Cleared package cache (deleted ${deletedBundleCountString}).\n`); + } else { + process.stdout.write('Package cache is already empty.\n'); + } } -} - -// Pin runtime version -if (actionsToPerform.pinRuntimeVersion) { - const parser = new ScriptParser(scriptFile.source); - const didPin = parser.pinRuntimeVersion(); - if (didPin) { - Tools.tryOrExitWithError(() => { - scriptFile.setSourceOrThrow(parser.source); - }, `Couldn't pin runtime version of “${scriptFile.name}” because of error: “$0”` - + `\nTo execute the script without automatic pinning, specify the \`--no-pin\` option.` - ); - } -} - -// Pin package versions -if (actionsToPerform.pinPackageVersions) { - // Pin - const parser = new ScriptParser(scriptFile.source); - const pinnedInfo = parser.pinPackageVersions(); - scriptFile.source = parser.source; - - // Display outcome - if (pinnedInfo.length > 0) { - const pinnedList = pinnedInfo - .map(info => info.name + '@' + info.version) - .join(', '); - - process.stdout.write(`Pinned ${pinnedList}.\n`); - } else { - process.stdout.write(`Pinned nothing.\n`); + // Pin runtime version + if (actionsToPerform.pinRuntimeVersion) { + const parser = new ScriptParser(scriptFile.source); + const didPin = parser.pinRuntimeVersion(); + + if (didPin) { + Tools.tryOrExitWithError(() => { + scriptFile.setSourceOrThrow(parser.source); + }, `Couldn't pin runtime version of “${scriptFile.name}” because of error: “$0”` + + `\nTo execute the script without automatic pinning, specify the \`--no-pin\` option.` + ); + } } -} - -// Preload packages -if (actionsToPerform.preloadPackages) { - const parser = new ScriptParser(scriptFile.source); - if (parser.requiredPackages.length > 0) { - PackageCache.loadPackageBundleSync(parser.requiredPackages, parser.requiredPackageVersions); + + // Pin package versions + if (actionsToPerform.pinPackageVersions) { + // Pin + const parser = new ScriptParser(scriptFile.source); + const pinnedInfo = parser.pinPackageVersions(); + scriptFile.source = parser.source; - const readablePackageList = PackageCache.readableRequiredPackageListFor(parser.requiredPackages, parser.requiredPackageVersions); - process.stdout.write(`Preloaded ${readablePackageList}.\n`); - } else { - process.stdout.write('Preloaded nothing: script requires no package.\n'); + // Display outcome + if (pinnedInfo.length > 0) { + const pinnedList = pinnedInfo + .map(info => info.name + '@' + info.version) + .join(', '); + + process.stdout.write(`Pinned ${pinnedList}.\n`); + } else { + process.stdout.write(`Pinned nothing.\n`); + } } -} - -// Run script -if (actionsToPerform.runScript) { - if (programArgs.nodeArguments.length > 0) { - // As separate process - ScriptRunner.runInNewProcess( - programArgs.scriptPath, - programArgs.scriptArguments, - programArgs.nodeArguments - ); - } else { - // In place - ScriptRunner.run( - scriptFile.source, - scriptFile.path, - programArgs.scriptArguments - ); + + // Preload packages + if (actionsToPerform.preloadPackages) { + const parser = new ScriptParser(scriptFile.source); + if (parser.requiredPackages.length > 0) { + PackageCache.loadPackageBundleSync(parser.requiredPackages, parser.requiredPackageVersions); + + const readablePackageList = PackageCache.readableRequiredPackageListFor(parser.requiredPackages, parser.requiredPackageVersions); + process.stdout.write(`Preloaded ${readablePackageList}.\n`); + } else { + process.stdout.write('Preloaded nothing: script requires no package.\n'); + } } -} + + // Run script + if (actionsToPerform.runScript) { + if (programArgs.nodeArguments.length > 0) { + // As separate process + ScriptRunner.runInNewProcess( + programArgs.scriptPath, + programArgs.scriptArguments, + programArgs.nodeArguments + ); + } else { + // In place + ScriptRunner.run( + scriptFile.source, + scriptFile.path, + programArgs.scriptArguments + ); + } + } +})();