You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
760 B
JavaScript
30 lines
760 B
JavaScript
8 months ago
|
'use strict'
|
||
|
|
||
|
// turn tar(1) style args like `C` into the more verbose things like `cwd`
|
||
|
|
||
|
const argmap = new Map([
|
||
|
['C', 'cwd'],
|
||
|
['f', 'file'],
|
||
|
['z', 'gzip'],
|
||
|
['P', 'preservePaths'],
|
||
|
['U', 'unlink'],
|
||
|
['strip-components', 'strip'],
|
||
|
['stripComponents', 'strip'],
|
||
|
['keep-newer', 'newer'],
|
||
|
['keepNewer', 'newer'],
|
||
|
['keep-newer-files', 'newer'],
|
||
|
['keepNewerFiles', 'newer'],
|
||
|
['k', 'keep'],
|
||
|
['keep-existing', 'keep'],
|
||
|
['keepExisting', 'keep'],
|
||
|
['m', 'noMtime'],
|
||
|
['no-mtime', 'noMtime'],
|
||
|
['p', 'preserveOwner'],
|
||
|
['L', 'follow'],
|
||
|
['h', 'follow'],
|
||
|
])
|
||
|
|
||
|
module.exports = opt => opt ? Object.keys(opt).map(k => [
|
||
|
argmap.has(k) ? argmap.get(k) : k, opt[k],
|
||
|
]).reduce((set, kv) => (set[kv[0]] = kv[1], set), Object.create(null)) : {}
|