[package]
name = "microsandbox-cli"
description = "CLI binary for managing microsandbox environments."
version.workspace = true
authors.workspace = true
repository.workspace = true
license.workspace = true
edition.workspace = true

[[bin]]
name = "msb"
path = "bin/main.rs"

[lib]
name = "microsandbox_cli"
path = "lib/lib.rs"

[features]
default = ["net", "prebuilt", "keyring", "ssh"]
keyring = ["microsandbox/keyring"]
prebuilt = ["microsandbox-runtime/prebuilt", "microsandbox/prebuilt"]
ssh = ["microsandbox/ssh", "dep:russh"]
net = [
    "dep:microsandbox-network",
    "microsandbox-runtime/net",
    "microsandbox/net",
    "dep:ipnetwork",
    "dep:thiserror",
]

[dependencies]
anyhow.workspace = true
base64.workspace = true
bytes.workspace = true
chrono.workspace = true
clap.workspace = true
clap_complete.workspace = true
console.workspace = true
dirs.workspace = true
futures.workspace = true
indicatif.workspace = true
ipnetwork = { workspace = true, optional = true }
libc.workspace = true
microsandbox.workspace = true
microsandbox-db.workspace = true
microsandbox-image.workspace = true
microsandbox-migration.workspace = true
microsandbox-network = { workspace = true, optional = true }
microsandbox-protocol.workspace = true
microsandbox-runtime.workspace = true
microsandbox-types.workspace = true
microsandbox-utils.workspace = true
rand.workspace = true
regex = "1"
reqwest.workspace = true
rpassword.workspace = true
russh = { workspace = true, optional = true }
sea-orm.workspace = true
serde.workspace = true
serde_json.workspace = true
serde-saphyr.workspace = true
tempfile.workspace = true
thiserror = { workspace = true, optional = true }
tokio.workspace = true
tracing.workspace = true
tracing-subscriber.workspace = true

[target.'cfg(windows)'.dependencies]
windows-sys = { version = "0.61.2", features = ["Wdk_Foundation", "Wdk_Storage_FileSystem", "Win32_Foundation", "Win32_Security", "Win32_Storage_FileSystem", "Win32_System_IO"] }

[dev-dependencies]
test-utils.workspace = true
