You've already forked setup-node
							
							
				mirror of
				https://github.com/actions/setup-node.git
				synced 2025-10-31 07:06:24 +07:00 
			
		
		
		
	new toolkit and scoped registries
This commit is contained in:
		
							
								
								
									
										45
									
								
								node_modules/cross-spawn/lib/util/escape.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								node_modules/cross-spawn/lib/util/escape.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,45 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| // See http://www.robvanderwoude.com/escapechars.php | ||||
| const metaCharsRegExp = /([()\][%!^"`<>&|;, *?])/g; | ||||
|  | ||||
| function escapeCommand(arg) { | ||||
|     // Escape meta chars | ||||
|     arg = arg.replace(metaCharsRegExp, '^$1'); | ||||
|  | ||||
|     return arg; | ||||
| } | ||||
|  | ||||
| function escapeArgument(arg, doubleEscapeMetaChars) { | ||||
|     // Convert to string | ||||
|     arg = `${arg}`; | ||||
|  | ||||
|     // Algorithm below is based on https://qntm.org/cmd | ||||
|  | ||||
|     // Sequence of backslashes followed by a double quote: | ||||
|     // double up all the backslashes and escape the double quote | ||||
|     arg = arg.replace(/(\\*)"/g, '$1$1\\"'); | ||||
|  | ||||
|     // Sequence of backslashes followed by the end of the string | ||||
|     // (which will become a double quote later): | ||||
|     // double up all the backslashes | ||||
|     arg = arg.replace(/(\\*)$/, '$1$1'); | ||||
|  | ||||
|     // All other backslashes occur literally | ||||
|  | ||||
|     // Quote the whole thing: | ||||
|     arg = `"${arg}"`; | ||||
|  | ||||
|     // Escape meta chars | ||||
|     arg = arg.replace(metaCharsRegExp, '^$1'); | ||||
|  | ||||
|     // Double escape meta chars if necessary | ||||
|     if (doubleEscapeMetaChars) { | ||||
|         arg = arg.replace(metaCharsRegExp, '^$1'); | ||||
|     } | ||||
|  | ||||
|     return arg; | ||||
| } | ||||
|  | ||||
| module.exports.command = escapeCommand; | ||||
| module.exports.argument = escapeArgument; | ||||
							
								
								
									
										32
									
								
								node_modules/cross-spawn/lib/util/readShebang.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								node_modules/cross-spawn/lib/util/readShebang.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,32 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| const fs = require('fs'); | ||||
| const shebangCommand = require('shebang-command'); | ||||
|  | ||||
| function readShebang(command) { | ||||
|     // Read the first 150 bytes from the file | ||||
|     const size = 150; | ||||
|     let buffer; | ||||
|  | ||||
|     if (Buffer.alloc) { | ||||
|         // Node.js v4.5+ / v5.10+ | ||||
|         buffer = Buffer.alloc(size); | ||||
|     } else { | ||||
|         // Old Node.js API | ||||
|         buffer = new Buffer(size); | ||||
|         buffer.fill(0); // zero-fill | ||||
|     } | ||||
|  | ||||
|     let fd; | ||||
|  | ||||
|     try { | ||||
|         fd = fs.openSync(command, 'r'); | ||||
|         fs.readSync(fd, buffer, 0, size, 0); | ||||
|         fs.closeSync(fd); | ||||
|     } catch (e) { /* Empty */ } | ||||
|  | ||||
|     // Attempt to extract shebang (null is returned if not a shebang) | ||||
|     return shebangCommand(buffer.toString()); | ||||
| } | ||||
|  | ||||
| module.exports = readShebang; | ||||
							
								
								
									
										47
									
								
								node_modules/cross-spawn/lib/util/resolveCommand.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								node_modules/cross-spawn/lib/util/resolveCommand.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,47 @@ | ||||
| '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; | ||||
		Reference in New Issue
	
	Block a user
	 Danny McCormick
					Danny McCormick