马宇豪
2024-07-16 f591c27b57e2418c9495bc02ae8cfff84d35bc18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#! /usr/bin/env node
 
const { relative } = require('path')
const pkgContents = require('../')
 
const usage = `Usage:
  installed-package-contents <path> [-d<n> --depth=<n>]
 
Lists the files installed for a package specified by <path>.
 
Options:
  -d<n> --depth=<n>   Provide a numeric value ("Infinity" is allowed)
                      to specify how deep in the file tree to traverse.
                      Default=1
  -h --help           Show this usage information`
 
const options = {}
 
process.argv.slice(2).forEach(arg => {
  let match
  if ((match = arg.match(/^(?:--depth=|-d)([0-9]+|Infinity)/))) {
    options.depth = +match[1]
  } else if (arg === '-h' || arg === '--help') {
    console.log(usage)
    process.exit(0)
  } else {
    options.path = arg
  }
})
 
if (!options.path) {
  console.error('ERROR: no path provided')
  console.error(usage)
  process.exit(1)
}
 
const cwd = process.cwd()
 
pkgContents(options)
  .then(list => list.sort().forEach(p => console.log(relative(cwd, p))))
  .catch(/* istanbul ignore next - pretty unusual */ er => {
    console.error(er)
    process.exit(1)
  })