Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/utils/with-chown-sync.js')
-rw-r--r--lib/utils/with-chown-sync.js13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/utils/with-chown-sync.js b/lib/utils/with-chown-sync.js
new file mode 100644
index 000000000..481b5696d
--- /dev/null
+++ b/lib/utils/with-chown-sync.js
@@ -0,0 +1,13 @@
+const mkdirp = require('mkdirp-infer-owner')
+const fs = require('graceful-fs')
+const path = require('path')
+
+module.exports = (file, method) => {
+ const dir = path.dirname(file)
+ mkdirp.sync(dir)
+ const result = method(file)
+ const st = fs.lstatSync(dir)
+ fs.chownSync(dir, st.uid, st.gid)
+ fs.chownSync(file, st.uid, st.gid)
+ return result
+}