Skip to content
This repository was archived by the owner on Jan 15, 2025. It is now read-only.

Commit 4ff618d

Browse files
committed
support dmode/fmode in pack
1 parent 037bd03 commit 4ff618d

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

index.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,21 @@ exports.pack = function (cwd, opts) {
6161
var mapStream = opts.mapStream || echo
6262
var statNext = statAll(xfs, opts.dereference ? xfs.stat : xfs.lstat, cwd, ignore, opts.entries)
6363
var strict = opts.strict !== false
64+
var dmode = typeof opts.dmode === 'number' ? opts.dmode : 0
65+
var fmode = typeof opts.fmode === 'number' ? opts.fmode : 0
6466
var pack = tar.pack()
6567

6668
if (opts.strip) map = strip(map, opts.strip)
6769

70+
if (opts.readable) {
71+
dmode |= 0555
72+
fmode |= 0444
73+
}
74+
if (opts.writable) {
75+
dmode |= 0333
76+
fmode |= 0222
77+
}
78+
6879
var onlink = function (filename, header) {
6980
xfs.readlink(path.join(cwd, filename), function (err, linkname) {
7081
if (err) return pack.destroy(err)
@@ -81,7 +92,7 @@ exports.pack = function (cwd, opts) {
8192

8293
var header = {
8394
name: normalize(filename),
84-
mode: stat.mode,
95+
mode: stat.mode | (stat.isDirectory() ? dmode : fmode),
8596
mtime: stat.mtime,
8697
size: stat.size,
8798
type: 'file',

0 commit comments

Comments
 (0)