mirror of
				https://kkgithub.com/actions/setup-python.git
				synced 2025-11-04 12:44:05 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			42 lines
		
	
	
		
			862 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			862 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// take an un-split argv string and tokenize it.
 | 
						|
module.exports = function (argString) {
 | 
						|
  if (Array.isArray(argString)) return argString
 | 
						|
 | 
						|
  argString = argString.trim()
 | 
						|
 | 
						|
  var i = 0
 | 
						|
  var prevC = null
 | 
						|
  var c = null
 | 
						|
  var opening = null
 | 
						|
  var args = []
 | 
						|
 | 
						|
  for (var ii = 0; ii < argString.length; ii++) {
 | 
						|
    prevC = c
 | 
						|
    c = argString.charAt(ii)
 | 
						|
 | 
						|
    // split on spaces unless we're in quotes.
 | 
						|
    if (c === ' ' && !opening) {
 | 
						|
      if (!(prevC === ' ')) {
 | 
						|
        i++
 | 
						|
      }
 | 
						|
      continue
 | 
						|
    }
 | 
						|
 | 
						|
    // don't split the string if we're in matching
 | 
						|
    // opening or closing single and double quotes.
 | 
						|
    if (c === opening) {
 | 
						|
      if (!args[i]) args[i] = ''
 | 
						|
      opening = null
 | 
						|
      continue
 | 
						|
    } else if ((c === "'" || c === '"') && !opening) {
 | 
						|
      opening = c
 | 
						|
      continue
 | 
						|
    }
 | 
						|
 | 
						|
    if (!args[i]) args[i] = ''
 | 
						|
    args[i] += c
 | 
						|
  }
 | 
						|
 | 
						|
  return args
 | 
						|
}
 |