52 lines
		
	
	
	
		
			985 B
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
	
		
			985 B
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable file
		
	
	
	
	
| #!/usr/bin/env node
 | |
| var which = require("../")
 | |
| if (process.argv.length < 3)
 | |
|   usage()
 | |
| 
 | |
| function usage () {
 | |
|   console.error('usage: which [-as] program ...')
 | |
|   process.exit(1)
 | |
| }
 | |
| 
 | |
| var all = false
 | |
| var silent = false
 | |
| var dashdash = false
 | |
| var args = process.argv.slice(2).filter(function (arg) {
 | |
|   if (dashdash || !/^-/.test(arg))
 | |
|     return true
 | |
| 
 | |
|   if (arg === '--') {
 | |
|     dashdash = true
 | |
|     return false
 | |
|   }
 | |
| 
 | |
|   var flags = arg.substr(1).split('')
 | |
|   for (var f = 0; f < flags.length; f++) {
 | |
|     var flag = flags[f]
 | |
|     switch (flag) {
 | |
|       case 's':
 | |
|         silent = true
 | |
|         break
 | |
|       case 'a':
 | |
|         all = true
 | |
|         break
 | |
|       default:
 | |
|         console.error('which: illegal option -- ' + flag)
 | |
|         usage()
 | |
|     }
 | |
|   }
 | |
|   return false
 | |
| })
 | |
| 
 | |
| process.exit(args.reduce(function (pv, current) {
 | |
|   try {
 | |
|     var f = which.sync(current, { all: all })
 | |
|     if (all)
 | |
|       f = f.join('\n')
 | |
|     if (!silent)
 | |
|       console.log(f)
 | |
|     return pv;
 | |
|   } catch (e) {
 | |
|     return 1;
 | |
|   }
 | |
| }, 0))
 |