Skip to content

Commit 6e43560

Browse files
committed
fixup! fix Windows
1 parent 0ea5929 commit 6e43560

File tree

1 file changed

+47
-36
lines changed

1 file changed

+47
-36
lines changed

lib/internal/process/methods.js

+47-36
Original file line numberDiff line numberDiff line change
@@ -10,32 +10,68 @@ const {
1010
} = require('internal/validators');
1111

1212
function setupProcessMethods() {
13+
// Non-POSIX platforms like Windows don't have certain methods.
14+
if (process.setgid !== undefined) {
15+
setupPosixMethods();
16+
}
17+
1318
const {
1419
chdir: _chdir,
20+
umask: _umask,
21+
} = process;
22+
23+
process.chdir = chdir;
24+
process.umask = umask;
25+
26+
function chdir(directory) {
27+
if (typeof directory !== 'string') {
28+
throw new ERR_INVALID_ARG_TYPE('directory', 'string', directory);
29+
}
30+
return _chdir(directory);
31+
}
32+
33+
const octalReg = /^[0-7]+$/;
34+
function umask(mask) {
35+
if (typeof mask === 'undefined') {
36+
return _umask(mask);
37+
}
38+
39+
if (typeof mask === 'number') {
40+
validateUint32(mask, 'mask');
41+
return _umask(mask);
42+
}
43+
44+
if (typeof mask === 'string') {
45+
if (!octalReg.test(mask)) {
46+
throw new ERR_INVALID_ARG_VALUE('mask', mask,
47+
'must be an octal string');
48+
}
49+
const octal = Number.parseInt(mask, 8);
50+
validateUint32(octal, 'mask');
51+
return _umask(octal);
52+
}
53+
54+
throw new ERR_INVALID_ARG_TYPE('mask', ['number', 'string', 'undefined'],
55+
mask);
56+
}
57+
}
58+
59+
function setupPosixMethods() {
60+
const {
1561
initgroups: _initgroups,
1662
setegid: _setegid,
1763
seteuid: _seteuid,
1864
setgid: _setgid,
1965
setuid: _setuid,
20-
setgroups: _setgroups,
21-
umask: _umask,
66+
setgroups: _setgroups
2267
} = process;
2368

24-
process.chdir = chdir;
2569
process.initgroups = initgroups;
2670
process.setegid = setegid;
2771
process.seteuid = seteuid;
2872
process.setgid = setgid;
2973
process.setuid = setuid;
3074
process.setgroups = setgroups;
31-
process.umask = umask;
32-
33-
function chdir(directory) {
34-
if (typeof directory !== 'string') {
35-
throw new ERR_INVALID_ARG_TYPE('directory', 'string', directory);
36-
}
37-
return _chdir(directory);
38-
}
3975

4076
function initgroups(user, extraGroup) {
4177
validateId(user, 'user');
@@ -80,31 +116,6 @@ function setupProcessMethods() {
80116
}
81117
}
82118

83-
const octalReg = /^[0-7]+$/;
84-
function umask(mask) {
85-
if (typeof mask === 'undefined') {
86-
return _umask(mask);
87-
}
88-
89-
if (typeof mask === 'number') {
90-
validateUint32(mask, 'mask');
91-
return _umask(mask);
92-
}
93-
94-
if (typeof mask === 'string') {
95-
if (!octalReg.test(mask)) {
96-
throw new ERR_INVALID_ARG_VALUE('mask', mask,
97-
'must be an octal string');
98-
}
99-
const octal = Number.parseInt(mask, 8);
100-
validateUint32(octal, 'mask');
101-
return _umask(octal);
102-
}
103-
104-
throw new ERR_INVALID_ARG_TYPE('mask', ['number', 'string', 'undefined'],
105-
mask);
106-
}
107-
108119
function execId(id, type, method) {
109120
validateId(id, 'id');
110121
// Result is 0 on success, 1 if credential is unknown.

0 commit comments

Comments
 (0)