[package]
name = "bottom"
version = "0.8.0"
authors = ["Clement Tsang <cjhtsang@uwaterloo.ca>"]
edition = "2021"
repository = "https://github.com/ClementTsang/bottom"
keywords = ["cross-platform", "monitoring", "cli", "top", "tui"]
license = "MIT"
categories = ["command-line-utilities", "visualization"]
description = "A customizable cross-platform graphical process/system monitor for the terminal. Supports Linux, macOS, and Windows."
documentation = "https://clementtsang.github.io/bottom/stable"
readme = "README.md"
default-run = "btm"
build = "build.rs"
exclude = [
    ".cargo-husky/",
    ".github/",
    "assets/",
    "scripts/",
    "docs/",
    "sample_configs/",
    ".all-contributorsrc",
    ".cirrus.yml",
    ".markdownlint.json",
    "CHANGELOG.md",
    "clippy.toml",
    "codecov.yml",
    "CONTRIBUTING.md",
    "Cross.toml",
    "rustfmt.toml",
]

[[bin]]
name = "btm"
path = "src/bin/main.rs"
doc = false

[lib]
test = true
doctest = true
doc = true

[profile.release]
# debug = true # Might be nice to have a custom profile for flamegraphs.
# strip = false
debug = 0
strip = "symbols"
lto = true
opt-level = 3
codegen-units = 1

[features]
battery = ["starship-battery"]
gpu = ["nvidia"]
nvidia = ["nvml-wrapper"]
zfs = ["sysctl"]

# The features we use by default.
default = ["fern", "log", "battery", "gpu", "zfs"]

# The features we use on deploy. Logging is not included as that is primarily (for now) just for debugging locally.
deploy = ["battery", "gpu", "zfs"]

[dependencies]
anyhow = "1.0.57"
backtrace = "0.3.67"
cfg-if = "1.0.0"
clap = { version = "3.1.12", features = ["default", "cargo", "wrap_help"] }
const_format = "0.2.30"
concat-string = "1.0.1"
crossterm = "0.25.0"
ctrlc = { version = "3.2.4", features = ["termination"] }
dirs = "4.0.0"
fern = { version = "0.6.1", optional = true }
futures = "0.3.25"
futures-timer = "3.0.2"
fxhash = "0.2.1"
humantime = "2.1.0"
humantime-serde = "1.1.1"
indexmap = "1.9.2"
itertools = "0.10.5"
kstring = { version = "2.0.0", features = ["arc"] }
log = { version = "0.4.17", optional = true }
nvml-wrapper = { version = "0.8.0", optional = true }
once_cell = "1.5.2"
regex = "1.7.1"
serde = { version = "1.0.152", features = ["derive"] }
starship-battery = { version = "0.7.9", optional = true }
sysinfo = "0.26.7"
thiserror = "1.0.38"
time = { version = "0.3.9", features = ["formatting", "macros"] }
toml = "0.5.10"
tui = "0.19.0"
typed-builder = "0.10.0"
unicode-segmentation = "1.10.0"
unicode-width = "0.1.10"

[target.'cfg(unix)'.dependencies]
libc = "0.2.124"

[target.'cfg(target_os = "linux")'.dependencies]
heim = { version = "0.1.0-rc.1", features = ["cpu", "disk", "memory", "net", "sensors"] }
procfs = { version = "0.14.2", default-features = false }
smol = "1.2.5"

[target.'cfg(target_os = "macos")'.dependencies]
heim = { version = "0.1.0-rc.1", features = ["cpu", "disk", "memory", "net"] }
mach2 = "0.4.1"

[target.'cfg(target_os = "windows")'.dependencies]
heim = { version = "0.1.0-rc.1", features = ["cpu", "disk", "memory"] }
windows = { version = "0.44.0", features = ["Win32_System_Threading", "Win32_Foundation"] }
winapi = "0.3.9"

[target.'cfg(target_os = "freebsd")'.dependencies]
serde_json = { version = "1.0.82" }
sysctl = { version = "0.5.2", optional = true }
filedescriptor = "0.8.2"

[dev-dependencies]
assert_cmd = "2.0.4"
predicates = "2.1.1"

[build-dependencies]
clap = { version = "3.1.12", features = ["default", "cargo", "wrap_help"] }
clap_complete = "3.1.2"
clap_mangen = "0.1.6"

[package.metadata.deb]
section = "utility"
assets = [
    [
        "target/release/btm",
        "usr/bin/",
        "755",
    ],
    [
        "LICENSE",
        "usr/share/doc/btm/",
        "644",
    ],
    [
        "manpage/btm.1.gz",
        "usr/share/man/man1/btm.1.gz",
        "644",
    ],
    [
        "completion/btm.bash",
        "usr/share/bash-completion/completions/btm",
        "644",
    ],
    [
        "completion/btm.fish",
        "usr/share/fish/vendor_completions.d/btm.fish",
        "644",
    ],
    [
        "completion/_btm",
        "usr/share/zsh/vendor-completions/",
        "644",
    ],
]
extended-description = """

By default, bottom will look for a config file in ~/.config/bottom/bottom.toml. A config file can be specified \
using `-C`. If a config file does not exist at the specified or default location, a default one will be created \
for the user there.
"""

[package.metadata.deb.variants.arm64]
depends = "libc6:arm64 (>= 2.28)"

[package.metadata.deb.variants.armhf]
depends = "libc6:armhf (>= 2.28)"

[package.metadata.wix]
output = "bottom_x86_64_installer.msi"

[dev-dependencies.cargo-husky]
version = "1"
default-features = false
features = ["user-hooks"]
