| #!/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))
 |