Files
heartwood/crates/radicle-cli/Cargo.toml
T
Lorenz Leutgeb 5229fb8a59 fix: Normalize filesystem paths with dunce
Microsoft Windows has Universal Naming Convention (UNC) paths, see
<https://learn.microsoft.com/en-us/dotnet/standard/io/file-path-formats#unc-paths>

The Rust standard library normalizes paths to this form when calling
`std::fs::canonicalize`, see
<https://doc.rust-lang.org/std/fs/fn.canonicalize.html>

However, some programs, do not parse these paths correctly, including
our ally `git`:

    $ git clone \\?\C:\Users\lorenz\tmp
    Cloning into 'tmp'...
    ssh: Could not resolve hostname \\\\?\\c: No such host is known.
    fatal: Could not read from remote repository.

    Please make sure you have the correct access rights
    and the repository exists.

The `dunce` crate solves the problem of having to deal with
normalization and avoiding weird UNC paths for us. Note that on
non-Windows platforms, it *behaves exactly like*
`std::fs::canonicalize`!
2025-08-22 15:11:43 +01:00

65 lines
1.9 KiB
TOML

[package]
name = "radicle-cli"
description = "Radicle CLI"
homepage.workspace = true
license.workspace = true
version = "0.15.0"
authors = ["cloudhead <cloudhead@radicle.xyz>"]
edition.workspace = true
build = "build.rs"
rust-version.workspace = true
[[bin]]
name = "rad"
path = "src/main.rs"
[dependencies]
anyhow = { workspace = true }
chrono = { workspace = true, features = ["clock", "std"] }
dunce = { workspace = true }
git-ref-format = { version = "0.3.0", features = ["macro"] }
human-panic.workspace = true
lexopt = { workspace = true }
localtime = { workspace = true }
log = { workspace = true, features = ["std"] }
nonempty = { workspace = true }
radicle = { workspace = true, features = ["logger", "schemars"] }
radicle-cob = { workspace = true }
radicle-crypto = { workspace = true }
# N.b. this is required to use macros, even though it's re-exported
# through radicle
radicle-git-ext = { workspace = true, features = ["serde"] }
radicle-surf = "0.22.0"
radicle-term = { workspace = true }
schemars = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
shlex = { workspace = true }
tempfile = { workspace = true }
thiserror = { workspace = true }
timeago = { version = "0.4.2", default-features = false }
tree-sitter = "0.24.4"
tree-sitter-bash = "0.23.3"
tree-sitter-c = "0.23.2"
tree-sitter-css = "0.23.1"
tree-sitter-go = "0.23.4"
tree-sitter-highlight = "0.24.4"
tree-sitter-html = "0.23.2"
tree-sitter-json = "0.24.8"
tree-sitter-md = "0.3.2"
tree-sitter-python = "0.23.4"
tree-sitter-ruby = "0.23.1"
tree-sitter-rust = "0.23.2"
tree-sitter-toml-ng = "0.6.0"
tree-sitter-typescript = "0.23.2"
zeroize = { workspace = true }
[dev-dependencies]
pretty_assertions = { workspace = true }
radicle = { workspace = true, features = ["test"] }
radicle-cli-test = { workspace = true }
radicle-node = { workspace = true, features = ["test"] }
[lints]
workspace = true