[package]
name = "systemg"
version = "0.52.2"
edition = "2024"
license = "MIT"
description = "An agent-friendly general process composer."
homepage = "https://sysg.dev"
documentation = "https://sysg.dev"
repository = "https://github.com/ra0x3/systemg"
readme = "README.md"
keywords = ["process-manager", "supervisor", "orchestrator", "cron", "service"]
categories = ["command-line-utilities", "development-tools", "os"]
rust-version = "1.96.0"

[package.metadata.docs.rs]
features = []

[[bin]]
name = "sysg"
path = "src/bin/main.rs"

[features]
linux = []
macos = []

[dependencies]
chrono = { version = "0.4", features = ["serde"] }
chrono-tz = "0.9"
clap = { version = "4.0", features = ["derive"] }
cron = "0.12"
crossterm = "0.28"
ctrlc = "3.4"
fs2 = "0.4"
libc = "0.2.170"
nix = { version = "0.29", features = ["process", "signal", "user", "sched", "resource"] }
quick-xml = { version = "0.41", features = ["serialize"] }
regex = "1.7"
reqwest = { version = "0.12", features = ["blocking"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde_yaml = { package = "serde_yaml_ng", version = "0.10" }
sha2 = "0.10"
strum = { version = "0.27", features = ["derive"] }
strum_macros = "0.27"
sysinfo = { version = "0.33" }
terminal_size = "0.4"
thiserror = "1.0"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["fmt", "env-filter"] }

[target.'cfg(all(target_os = "linux", target_env = "musl"))'.dependencies]
openssl-sys = { version = "0.9", features = ["vendored"] }

[target.'cfg(target_os = "linux")'.dependencies]
caps = "0.5"
openssl-sys = { version = "0.9", features = ["vendored"] }

[dev-dependencies]
assert_cmd = { version = "2.0" }
predicates = { version = "2.1" }
tempfile = { version = "3.14.0" }

[[test]]
name = "hooks"
path = "tests/integration/hooks.rs"

[[test]]
name = "service_control"
path = "tests/integration/service_control.rs"

[[test]]
name = "process"
path = "tests/integration/process.rs"

[[test]]
name = "service_control_regression"
path = "tests/integration/service_control_regression.rs"

[[test]]
name = "pid_tracking"
path = "tests/integration/pid_tracking.rs"

[[test]]
name = "status"
path = "tests/integration/status.rs"

[[test]]
name = "logs"
path = "tests/integration/logs.rs"

[[test]]
name = "cron"
path = "tests/integration/cron.rs"

[[test]]
name = "cron_pid_race"
path = "tests/integration/cron_pid_race.rs"

[[test]]
name = "supervisor"
path = "tests/integration/supervisor.rs"

[[test]]
name = "deployment"
path = "tests/integration/deployment.rs"

[[test]]
name = "cli"
path = "tests/integration/cli.rs"
