[package]
name = "flake-edit"
description = "Edit your flake inputs with ease."
version = "0.3.3"
edition = "2024"
keywords = ["nix", "flake", "terminal", "cli"]
categories = ["command-line-utilities"]
authors = ["Alexander Kenji Berthold"]
readme = "README.md"
license = "MIT"
repository = "https://github.com/a-kenji/flake-edit"
documentation = "https://github.com/a-kenji/flake-edit"
homepage = "https://github.com/a-kenji/flake-edit"
include = ["src/**/*", "LICENSE", "README.md", "build.rs"]
[[bin]]
name = "flake-edit"
[workspace]
members = ["."]
[features]
default = ["application"]
application = [
"clap",
"write",
"assets",
"anyhow",
"diff",
"tracing-subscriber",
"tui",
]
tui = ["ratatui", "crossterm", "nucleo-matcher"]
write = []
diff = ["diffy"]
assets = ["clap_complete", "clap_complete_nushell", "roff", "clap_mangen"]
[dependencies]
anyhow = { version = "1.0.100", optional = true }
clap = { version = "4.5.54", optional = true, features = ["derive"] }
color-eyre = { version = "0.6.5", default-features = false, features = [
"track-caller",
] }
diffy = { version = "0.4.2", optional = true }
directories = "6.0.0"
nix-uri = "0.1.10"
ureq = { version = "3", default-features = false, features = ["rustls"] }
rnix = "0.12.0"
ropey = { version = "1.6.1" }
semver = "1.0.27"
serde = { version = "1.0.228", default-features = false, features = [
"derive",
"alloc",
] }
serde_json = { version = "1.0.149" }
toml = "0.8"
thiserror = "2.0.18"
tracing = "0.1.44"
tracing-subscriber = { version = "0.3.20", features = [
"time",
"std",
"fmt",
"env-filter",
], optional = true }
ratatui = { version = "0.30.0", optional = true, default-features = false, features = [
"crossterm",
] }
crossterm = { version = "0.29.0", optional = true, default-features = false }
nucleo-matcher = { version = "0.3", optional = true }
[build-dependencies]
clap = { version = "4.5.54", features = ["derive"], optional = true }
clap_complete = { version = "4.5.65", features = [], optional = true }
clap_complete_nushell = { version = "4.5.10", optional = true }
clap_mangen = { version = "0.2.31", features = [], optional = true }
roff = { version = "0.2.2", optional = true }
[[bench]]
name = "benches"
path = "benches/benches.rs"
harness = false
[[bench]]
name = "divan"
path = "benches/divan.rs"
harness = false
[profile.release]
lto = true
codegen-units = 1
opt-level = 'z'
strip = true
panic = "abort"
[profile.dev]
incremental = true
lto = "thin"
debug = false
[profile.dev.package.insta]
opt-level = 3
[profile.dev.package.similar]
opt-level = 3
[profile.dev.package.backtrace]
opt-level = 3
[dev-dependencies]
criterion = "0.8.1"
divan = "0.1.21"
insta = { version = "1.46.0", features = ["yaml", "filters", "redactions"] }
insta-cmd = "0.6"
rstest = "0.26"
tempfile = "3"