summaryrefslogtreecommitdiff
path: root/ext/node/ops/os/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ext/node/ops/os/mod.rs')
-rw-r--r--ext/node/ops/os/mod.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/ext/node/ops/os/mod.rs b/ext/node/ops/os/mod.rs
index 603f678e0..5b32113e5 100644
--- a/ext/node/ops/os/mod.rs
+++ b/ext/node/ops/os/mod.rs
@@ -88,3 +88,17 @@ where
cpus::cpu_info().ok_or_else(|| type_error("Failed to get cpu info"))
}
+
+#[op2]
+#[string]
+pub fn op_homedir<P>(state: &mut OpState) -> Result<Option<String>, AnyError>
+where
+ P: NodePermissions + 'static,
+{
+ {
+ let permissions = state.borrow_mut::<P>();
+ permissions.check_sys("homedir", "node:os.homedir()")?;
+ }
+
+ Ok(home::home_dir().map(|path| path.to_string_lossy().to_string()))
+}