mirror of
				https://kkgithub.com/actions/setup-node.git
				synced 2025-11-04 04:31:55 +08:00 
			
		
		
		
	
		
			
	
	
		
			43 lines
		
	
	
		
			890 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			43 lines
		
	
	
		
			890 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								module.exports = isexe
							 | 
						||
| 
								 | 
							
								isexe.sync = sync
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var fs = require('fs')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function checkPathExt (path, options) {
							 | 
						||
| 
								 | 
							
								  var pathext = options.pathExt !== undefined ?
							 | 
						||
| 
								 | 
							
								    options.pathExt : process.env.PATHEXT
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!pathext) {
							 | 
						||
| 
								 | 
							
								    return true
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  pathext = pathext.split(';')
							 | 
						||
| 
								 | 
							
								  if (pathext.indexOf('') !== -1) {
							 | 
						||
| 
								 | 
							
								    return true
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  for (var i = 0; i < pathext.length; i++) {
							 | 
						||
| 
								 | 
							
								    var p = pathext[i].toLowerCase()
							 | 
						||
| 
								 | 
							
								    if (p && path.substr(-p.length).toLowerCase() === p) {
							 | 
						||
| 
								 | 
							
								      return true
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  return false
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function checkStat (stat, path, options) {
							 | 
						||
| 
								 | 
							
								  if (!stat.isSymbolicLink() && !stat.isFile()) {
							 | 
						||
| 
								 | 
							
								    return false
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  return checkPathExt(path, options)
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function isexe (path, options, cb) {
							 | 
						||
| 
								 | 
							
								  fs.stat(path, function (er, stat) {
							 | 
						||
| 
								 | 
							
								    cb(er, er ? false : checkStat(stat, path, options))
							 | 
						||
| 
								 | 
							
								  })
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function sync (path, options) {
							 | 
						||
| 
								 | 
							
								  return checkStat(fs.statSync(path), path, options)
							 | 
						||
| 
								 | 
							
								}
							 |