dotenvy aborted on the production .env (a quote in an unquoted value makes it
read to the end of the file) and echoed the offending line, password
included. envfile.rs ports python-dotenv 1.1.1 (parser + ${VAR} interpolation,
no override): unparsable statements are skipped with a warning that names only
the line number. Verified against python-dotenv on 614 generated inputs
(testdata/). The .env is loaded before the tokio runtime starts.
install_collector.sh now runs the dry run through systemd-run with the unit's
User, WorkingDirectory and EnvironmentFile, i.e. exactly what the service sees.
32 lines
1.3 KiB
TOML
32 lines
1.3 KiB
TOML
[workspace]
|
|
resolver = "3"
|
|
members = ["collector"]
|
|
|
|
[workspace.package]
|
|
# 1.88: edition 2024 let-chains, and dependencies (home, icu_*) need it. Distro
|
|
# cargo packages are older: install the toolchain with rustup (rust/README.md).
|
|
edition = "2024"
|
|
rust-version = "1.88"
|
|
license = "MIT"
|
|
publish = false
|
|
repository = "https://git.b4l.co.th/B4L/Northern-Thailand-Ping-River-Monitor"
|
|
|
|
[workspace.dependencies]
|
|
anyhow = "1"
|
|
chrono = { version = "0.4", default-features = false, features = ["std", "clock", "serde"] }
|
|
clap = { version = "4", features = ["derive"] }
|
|
# native-tls (OpenSSL on Linux, SChannel on Windows), not rustls: app.rid.go.th (dams)
|
|
# offers only TLS 1.2 CBC suites (ECDHE-RSA-AES256-SHA384), which rustls refuses.
|
|
reqwest = { version = "0.12", default-features = false, features = ["native-tls", "json"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = { version = "1", features = ["float_roundtrip"] }
|
|
sqlx = { version = "0.8", default-features = false, features = ["runtime-tokio", "tls-rustls", "postgres", "chrono", "macros"] }
|
|
tokio = { version = "1", features = ["rt-multi-thread", "macros", "time", "signal"] }
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
|
|
[profile.release]
|
|
lto = "thin"
|
|
codegen-units = 1
|
|
strip = true
|