UNPKG

505 BJavaScriptView Raw
1const fs = require('fs').promises
2const path = require('path')
3const assert = require('assert')
4
5module.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}