1 | const fs = require('fs').promises
|
2 | const path = require('path')
|
3 | const assert = require('assert')
|
4 |
|
5 | module.exports = async function (tmp, random, pid) {
|
6 | for (;;) {
|
7 | const umask = process.umask(0o077)
|
8 | try {
|
9 | const dirname = path.join(tmp, `prolific-${pid}-${await random()}`)
|
10 | await fs.mkdir(dirname)
|
11 | return dirname
|
12 | } catch (error) {
|
13 | assert(error.code == 'EEXIST')
|
14 | } finally {
|
15 | process.umask(umask)
|
16 | }
|
17 | }
|
18 | }
|