[package]
name = "submod"
version = "0.2.0"
edition = "2024"
rust-version = "1.87"
description = "A headache-free submodule management tool, built on top of gitoxide. Manage sparse checkouts, submodule updates, and adding/removing submodules with ease."
license-file = "LICENSE.md"
repository = "https://github.com/bashandbone/submod"
homepage = "https://github.com/bashandbone/submod"
documentation = "https://docs.rs/submod"
readme = "README.md"
keywords = [
"git",
"submodule",
"gitoxide",
"cli",
"sparse-checkout",
]
categories = ["command-line-utilities", "development-tools"]
resolver = "3"
include = [
"src/**/*",
"README.md",
"Cargo.toml",
"sample_config/submod.toml",
"REUSE.toml",
"LICENSES/*",
"LICENSE.md",
"submod-sbom.spdx"
]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[dependencies]
bstr = { version = "1.12.1", default-features = false }
gix = { version = "0.80.0", default-features = false, features = [
"attributes",
"blocking-network-client",
"excludes",
"command",
"parallel",
"serde",
"status",
"worktree-mutation"
] }
gitoxide-core = { version = "0.54.0", default-features = false, features = ["blocking-client", "organize", "clean", "serde"]}
gix-config = { version = "0.53.0", features = ["serde"] }
gix-submodule = "0.27.0"
gix-pathspec = "0.16.0"
gix-glob = "0.24.0"
clap = { version = "4.5.60", features = [
"derive",
"cargo",
"unicode",
"wrap_help",
] }
clap_complete = "4.5.66"
clap_complete_nushell = "4.5.10"
prodash = { version = "31.0.0", features = ["render-line-crossterm", "render-line-autoconfigure", "render-line"] }
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.149"
figment = { version = "0.10.19", default-features = false, features = ["toml"] }
anyhow = "1.0.102"
thiserror = "2.0.18"
bitflags = "2.11.0"
git2 = { version = "0.20.4" }
[lib]
name = "submod"
path = "src/lib.rs"
[[bin]]
name = "submod"
path = "src/main.rs"
[dev-dependencies]
figment = { version = "0.10.19", default-features = false, features = [
"test",
"toml",
] }
tempfile = "3.14.0"
serde_json = "1.0.140"
[lints.rust]
unsafe_code = "forbid"
unused = { level = "warn", priority = -1 }
missing_docs = "warn"
unreachable_code = "warn"
[lints.clippy]
cargo = { level = "warn", priority = -1 }
complexity = { level = "warn", priority = -1 }
correctness = { level = "deny", priority = -1 }
nursery = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
perf = { level = "warn", priority = -1 }
style = { level = "warn", priority = -1 }
suspicious = { level = "warn", priority = -1 }
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
too_many_lines = "allow"