• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env node
2var which = require("../")
3if (process.argv.length < 3)
4  usage()
5
6function usage () {
7  console.error('usage: which [-as] program ...')
8  process.exit(1)
9}
10
11var all = false
12var silent = false
13var dashdash = false
14var args = process.argv.slice(2).filter(function (arg) {
15  if (dashdash || !/^-/.test(arg))
16    return true
17
18  if (arg === '--') {
19    dashdash = true
20    return false
21  }
22
23  var flags = arg.substr(1).split('')
24  for (var f = 0; f < flags.length; f++) {
25    var flag = flags[f]
26    switch (flag) {
27      case 's':
28        silent = true
29        break
30      case 'a':
31        all = true
32        break
33      default:
34        console.error('which: illegal option -- ' + flag)
35        usage()
36    }
37  }
38  return false
39})
40
41process.exit(args.reduce(function (pv, current) {
42  try {
43    var f = which.sync(current, { all: all })
44    if (all)
45      f = f.join('\n')
46    if (!silent)
47      console.log(f)
48    return pv;
49  } catch (e) {
50    return 1;
51  }
52}, 0))
53