summaryrefslogtreecommitdiff
path: root/ext/fs
diff options
context:
space:
mode:
Diffstat (limited to 'ext/fs')
-rw-r--r--ext/fs/Cargo.toml1
-rw-r--r--ext/fs/interface.rs2
-rw-r--r--ext/fs/std_fs.rs3
3 files changed, 6 insertions, 0 deletions
diff --git a/ext/fs/Cargo.toml b/ext/fs/Cargo.toml
index f6f64010e..b8cccde28 100644
--- a/ext/fs/Cargo.toml
+++ b/ext/fs/Cargo.toml
@@ -35,3 +35,4 @@ nix.workspace = true
[target.'cfg(windows)'.dependencies]
winapi = { workspace = true, features = ["winbase"] }
+junction.workspace = true
diff --git a/ext/fs/interface.rs b/ext/fs/interface.rs
index 8ffa61481..c5a348eb1 100644
--- a/ext/fs/interface.rs
+++ b/ext/fs/interface.rs
@@ -64,6 +64,8 @@ pub enum FsFileType {
File,
#[serde(rename = "dir")]
Directory,
+ #[serde(rename = "junction")]
+ Junction,
}
#[derive(Serialize)]
diff --git a/ext/fs/std_fs.rs b/ext/fs/std_fs.rs
index c1c9200cb..332866e45 100644
--- a/ext/fs/std_fs.rs
+++ b/ext/fs/std_fs.rs
@@ -810,6 +810,9 @@ fn symlink(
FsFileType::Directory => {
std::os::windows::fs::symlink_dir(oldpath, newpath)?;
}
+ FsFileType::Junction => {
+ junction::create(oldpath, newpath)?;
+ }
};
Ok(())