* Updates * Update * Update * Update * Update * Yarn sometimes prefers npmrc, so use same token * Description * Update readme * Feedback * Add type * new toolkit and scoped registries * npmrc in RUNNER_TEMP * Dont always auth * Try exporting blank token * Get auth working for now pending runner changes * Fix string interpolation for auth token. * Don't export both userconfigs * Update authutil.js * Add single quotes for authString * Fix the registry string. * Use userconfig and append trailing slash * Keep in root of repo * Try just adding auth token * Remove auth token * Try changes again * Add tests * Npm and GPR samples * Add types
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| const path = require('path');
 | |
| const which = require('which');
 | |
| const pathKey = require('path-key')();
 | |
| 
 | |
| function resolveCommandAttempt(parsed, withoutPathExt) {
 | |
|     const cwd = process.cwd();
 | |
|     const hasCustomCwd = parsed.options.cwd != null;
 | |
| 
 | |
|     // If a custom `cwd` was specified, we need to change the process cwd
 | |
|     // because `which` will do stat calls but does not support a custom cwd
 | |
|     if (hasCustomCwd) {
 | |
|         try {
 | |
|             process.chdir(parsed.options.cwd);
 | |
|         } catch (err) {
 | |
|             /* Empty */
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     let resolved;
 | |
| 
 | |
|     try {
 | |
|         resolved = which.sync(parsed.command, {
 | |
|             path: (parsed.options.env || process.env)[pathKey],
 | |
|             pathExt: withoutPathExt ? path.delimiter : undefined,
 | |
|         });
 | |
|     } catch (e) {
 | |
|         /* Empty */
 | |
|     } finally {
 | |
|         process.chdir(cwd);
 | |
|     }
 | |
| 
 | |
|     // If we successfully resolved, ensure that an absolute path is returned
 | |
|     // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it
 | |
|     if (resolved) {
 | |
|         resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved);
 | |
|     }
 | |
| 
 | |
|     return resolved;
 | |
| }
 | |
| 
 | |
| function resolveCommand(parsed) {
 | |
|     return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true);
 | |
| }
 | |
| 
 | |
| module.exports = resolveCommand;
 |