[package]
name = "susshi"
version = "0.16.0"
edition = "2024"
description = "A modern terminal-based SSH connection manager with a beautiful Catppuccin TUI"
license = "MIT"
repository = "https://github.com/yatoub/susshi"
homepage = "https://github.com/yatoub/susshi"
documentation = "https://github.com/yatoub/susshi/blob/master/README.md"
keywords = ["ssh", "tui", "terminal", "manager", "ratatui"]
categories = ["command-line-utilities", "network-programming"]
exclude = ["target/", ".idea/", ".github/"]

[features]
default = []
# Controlled fallback for targets where system OpenSSL is unavailable or unstable.
openssl-vendored = ["ssh2/vendored-openssl"]

[dependencies]
anyhow = "1.0.102"
i18n-embed = { version = "0.16", features = ["fluent-system", "desktop-requester"] }
i18n-embed-fl = "0.10"
rust-embed = "8"
unic-langid = { version = "0.9", features = ["macros"] }
arboard = { version = "3", default-features = false }
catppuccin = "2.8.0"
clap = { version = "4", features = ["derive"] }
crossterm = "0.29.0"
libc = "0.2"
ratatui = { version = "0.30.0", default-features = false, features = ["crossterm"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1"

fuzzy-matcher = "0.3"
shellexpand = "3.1.2"
thiserror = "2.0.18"
serde_yaml_ng = "0.10.0"
ureq = "3"

[target.'cfg(unix)'.dependencies]
nix = { version = "0.31", features = ["term", "process"] }

[target.'cfg(not(target_os = "windows"))'.dependencies]
ssh2 = "0.9"

[target.'cfg(target_os = "windows")'.dependencies]
ssh2 = "0.9"

[build-dependencies]
clap = { version = "4", features = ["derive"] }
clap_mangen = "0.3"
flate2 = "1"

[dev-dependencies]
tempfile = "3.27.0"

[profile.release]
# Compromis taille / temps de compilation pour les builds de release.
opt-level = "s"
# Supprime les symboles de debug (économie ~1 Mo typiquement)
strip = true
# Thin LTO garde une bonne réduction de taille avec un coût de build plus faible que fat LTO.
lto = "thin"
codegen-units = 1
incremental = false
# Pas d'info debug en release.
debug = 0
# Pas de symboles de panic verbeux (remplace "panicked at …" par abort)
panic = "abort"

[package.metadata.deb]
name = "susshi"
maintainer = "yatoub <yatoub@users.noreply.github.com>"
copyright = "2024-2026 yatoub"
license-file = ["LICENCE", "0"]
extended-description = """\
susshi is a modern, terminal-based SSH connection manager \
with TUI (ratatui + Catppuccin theme), multi-mode connections \
(direct, jump, bastion/Wallix), and YAML configuration."""
depends = "openssh-client"
recommends = "xclip | xdotool"
section = "net"
priority = "optional"
assets = [
    ["target/release/susshi", "usr/bin/susshi", "755"],
    ["target/man/susshi.1.gz", "usr/share/man/man1/susshi.1.gz", "644"],
    ["README.md", "usr/share/doc/susshi/README.md", "644"],
    ["docs/*", "usr/share/doc/susshi/docs/", "644"],
    ["examples/*", "usr/share/doc/susshi/examples/", "644"],
]
