summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClement Tsang <34804052+ClementTsang@users.noreply.github.com>2021-10-17 21:33:07 -0400
committerGitHub <noreply@github.com>2021-10-17 21:33:07 -0400
commitea0c7b49b7f4f546f4c20997b6efeea253c8d078 (patch)
treee003782c49ac7d58328a7df90ff39e5e8ac613fd
parent6c157fe1ddde267a44d2bd0577291e39435c31bd (diff)
deps: bump deps, remove chrono (#600)
Bumps up some dependencies and removes chrono, switching to the time crate instead. One of side-effects of this change is that local time seems to not work (?)... so all logs are now in UTC. Oh well, this doesn't affect general user behaviour so I'm fine with it.
-rw-r--r--Cargo.lock146
-rw-r--r--Cargo.toml4
-rw-r--r--src/app/data_harvester/processes/linux.rs2
-rw-r--r--src/data_conversion.rs20
-rw-r--r--src/utils/logging.rs10
5 files changed, 94 insertions, 88 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 483bd009..a72008fe 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -49,7 +49,7 @@ checksum = "c98233c6673d8601ab23e77eb38f999c51100d46c5703b17288c57fddf3a1ffe"
dependencies = [
"bstr",
"doc-comment",
- "predicates 2.0.2",
+ "predicates 2.0.3",
"predicates-core",
"predicates-tree",
"wait-timeout",
@@ -210,9 +210,9 @@ dependencies = [
[[package]]
name = "bitflags"
-version = "1.2.1"
+version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "blocking"
@@ -238,7 +238,6 @@ dependencies = [
"battery",
"cargo-husky",
"cfg-if",
- "chrono",
"clap",
"crossterm",
"ctrlc",
@@ -260,6 +259,7 @@ dependencies = [
"smol",
"sysinfo",
"thiserror",
+ "time",
"toml",
"tui",
"typed-builder",
@@ -270,9 +270,9 @@ dependencies = [
[[package]]
name = "bstr"
-version = "0.2.16"
+version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90682c8d613ad3373e66de8c6411e0ae2ab2571e879d2efbf73558cc66f21279"
+checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223"
dependencies = [
"lazy_static",
"memchr",
@@ -305,9 +305,9 @@ checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"
[[package]]
name = "cc"
-version = "1.0.70"
+version = "1.0.71"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d26a6ce4b6a484fa3edb70f7efa6fc430fd2b87285fe8b84304fd0936faa0dc0"
+checksum = "79c2681d6594606957bbb8631c4b90a7fcaaa72cdb714743a437b156d6a7eedd"
[[package]]
name = "cfg-if"
@@ -316,19 +316,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
-name = "chrono"
-version = "0.4.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
-dependencies = [
- "libc",
- "num-integer",
- "num-traits",
- "time",
- "winapi",
-]
-
-[[package]]
name = "clap"
version = "2.33.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -364,11 +351,11 @@ dependencies = [
[[package]]
name = "core-foundation"
-version = "0.9.1"
+version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62"
+checksum = "6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3"
dependencies = [
- "core-foundation-sys 0.8.2",
+ "core-foundation-sys 0.8.3",
"libc",
]
@@ -380,9 +367,9 @@ checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"
[[package]]
name = "core-foundation-sys"
-version = "0.8.2"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b"
+checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
[[package]]
name = "crc32fast"
@@ -464,11 +451,11 @@ dependencies = [
[[package]]
name = "ctrlc"
-version = "3.2.0"
+version = "3.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "377c9b002a72a0b2c1a18c62e2f3864bdfea4a015e3683a96e24aa45dd6c02d1"
+checksum = "a19c6cedffdc8c03a3346d723eb20bd85a13362bb96dc2ac000842c6381ec7bf"
dependencies = [
- "nix 0.22.1",
+ "nix 0.23.0",
"winapi",
]
@@ -736,7 +723,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d767e6e47cf88abe7c9a5ebb4df82f180d30d9c0ba0269b6d166482461765834"
dependencies = [
"cfg-if",
- "core-foundation 0.9.1",
+ "core-foundation 0.9.2",
"futures-core",
"futures-util",
"lazy_static",
@@ -775,7 +762,7 @@ checksum = "75603ff3868851c04954ee86bf610a6bd45be2732a0e81c35fd72b2b90fa4718"
dependencies = [
"bitflags",
"cfg-if",
- "core-foundation 0.9.1",
+ "core-foundation 0.9.2",
"heim-common",
"heim-runtime",
"libc",
@@ -864,9 +851,9 @@ dependencies = [
[[package]]
name = "instant"
-version = "0.1.10"
+version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d"
+checksum = "716d3d89f35ac6a34fd0eed635395f4c3b76fa889338a4632e5231a8684216bd"
dependencies = [
"cfg-if",
]
@@ -881,6 +868,12 @@ dependencies = [
]
[[package]]
+name = "itoa"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
+
+[[package]]
name = "lazy_static"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -894,9 +887,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
[[package]]
name = "libc"
-version = "0.2.102"
+version = "0.2.104"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2a5ac8f984bfcf3a823267e5fde638acc3325f6496633a5da6bb6eb2171e103"
+checksum = "7b2f96d100e1cf1929e7719b7edb3b90ab5298072638fccd77be9ce942ecdfce"
[[package]]
name = "lock_api"
@@ -958,9 +951,9 @@ dependencies = [
[[package]]
name = "mio"
-version = "0.7.13"
+version = "0.7.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c2bdb6314ec10835cd3293dd268473a835c02b7b352e788be788b3c6ca6bb16"
+checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc"
dependencies = [
"libc",
"log",
@@ -992,9 +985,9 @@ dependencies = [
[[package]]
name = "nix"
-version = "0.22.1"
+version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7555d6c7164cc913be1ce7f95cbecdabda61eb2ccd89008524af306fb7f5031"
+checksum = "f305c2c2e4c39a82f7bf0bf65fb557f9070ce06781d4f2454295cc34b1c43188"
dependencies = [
"bitflags",
"cc",
@@ -1144,9 +1137,9 @@ dependencies = [
[[package]]
name = "predicates"
-version = "2.0.2"
+version = "2.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c143348f141cc87aab5b950021bac6145d0e5ae754b0591de23244cee42c9308"
+checksum = "5c6ce811d0b2e103743eec01db1c50612221f173084ce2f7941053e94b6bb474"
dependencies = [
"difflib",
"itertools",
@@ -1161,12 +1154,12 @@ checksum = "57e35a3326b75e49aa85f5dc6ec15b41108cf5aee58eabb1f274dd18b73c2451"
[[package]]
name = "predicates-tree"
-version = "1.0.3"
+version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7dd0fd014130206c9352efbdc92be592751b2b9274dff685348341082c6ea3d"
+checksum = "338c7be2905b732ae3984a2f40032b5e94fd8f52505b186c7d4d68d193445df7"
dependencies = [
"predicates-core",
- "treeline",
+ "termtree",
]
[[package]]
@@ -1183,22 +1176,21 @@ checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086"
[[package]]
name = "proc-macro2"
-version = "1.0.29"
+version = "1.0.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9f5105d4fdaab20335ca9565e106a5d9b82b6219b5ba735731124ac6711d23d"
+checksum = "edc3358ebc67bc8b7fa0c007f945b0b18226f78437d61bec735a9eb96b61ee70"
dependencies = [
"unicode-xid",
]
[[package]]
name = "procfs"
-version = "0.10.1"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95e344cafeaeefe487300c361654bcfc85db3ac53619eeccced29f5ea18c4c70"
+checksum = "3f2e7eea7c1d7beccbd5acc1e37ac844afccf176525674aad26ece3de1fc7733"
dependencies = [
"bitflags",
"byteorder",
- "chrono",
"flate2",
"hex",
"lazy_static",
@@ -1207,9 +1199,9 @@ dependencies = [
[[package]]
name = "quote"
-version = "1.0.9"
+version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
+checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05"
dependencies = [
"proc-macro2",
]
@@ -1345,15 +1337,15 @@ dependencies = [
[[package]]
name = "slab"
-version = "0.4.4"
+version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c307a32c1c5c437f38c7fd45d753050587732ba8628319fbdf12a7e289ccc590"
+checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5"
[[package]]
name = "smallvec"
-version = "1.6.1"
+version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
+checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309"
[[package]]
name = "smol"
@@ -1391,9 +1383,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
[[package]]
name = "syn"
-version = "1.0.76"
+version = "1.0.80"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6f107db402c2c2055242dbf4d2af0e69197202e9faacbef9571bbe47f5a1b84"
+checksum = "d010a1623fbd906d51d650a9916aaefc05ffa0e4053ff7fe601167f3e715d194"
dependencies = [
"proc-macro2",
"quote",
@@ -1407,7 +1399,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d404aefa651a24a7f2a1190fec9fb6380ba84ac511a6fefad79eb0e63d39a97d"
dependencies = [
"cfg-if",
- "core-foundation-sys 0.8.2",
+ "core-foundation-sys 0.8.3",
"doc-comment",
"libc",
"ntapi",
@@ -1417,6 +1409,12 @@ dependencies = [
]
[[package]]
+name = "termtree"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78fbf2dd23e79c28ccfa2472d3e6b3b189866ffef1aeb91f17c2d968b6586378"
+
+[[package]]
name = "textwrap"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1427,18 +1425,18 @@ dependencies = [
[[package]]
name = "thiserror"
-version = "1.0.29"
+version = "1.0.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "602eca064b2d83369e2b2f34b09c70b605402801927c65c11071ac911d299b88"
+checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.29"
+version = "1.0.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bad553cc2c78e8de258400763a647e80e6d1b31ee237275d756f6836d204494c"
+checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b"
dependencies = [
"proc-macro2",
"quote",
@@ -1447,16 +1445,22 @@ dependencies = [
[[package]]
name = "time"
-version = "0.1.44"
+version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
+checksum = "cde1cf55178e0293453ba2cca0d5f8392a922e52aa958aee9c28ed02becc6d03"
dependencies = [
+ "itoa",
"libc",
- "wasi",
- "winapi",
+ "time-macros",
]
[[package]]
+name = "time-macros"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25eb0ca3468fc0acc11828786797f6ef9aa1555e4a211a60d64cc8e4d1be47d6"
+
+[[package]]
name = "toml"
version = "0.5.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1466,12 +1470,6 @@ dependencies = [
]
[[package]]
-name = "treeline"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41"
-
-[[package]]
name = "tui"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1553,9 +1551,9 @@ checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
[[package]]
name = "wasi"
-version = "0.10.0+wasi-snapshot-preview1"
+version = "0.10.2+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
+checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
[[package]]
name = "wepoll-ffi"
diff --git a/Cargo.toml b/Cargo.toml
index 05f24aa3..8d244573 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -36,7 +36,6 @@ default = ["fern", "log", "battery"]
[dependencies]
anyhow = "1.0.40"
backtrace = "0.3.59"
-chrono = "0.4.19"
crossterm = "0.18.2"
ctrlc = { version = "3.1.9", features = ["termination"] }
clap = "2.33"
@@ -53,6 +52,7 @@ serde = { version = "1.0.125", features = ["derive"] }
# Sysinfo is still used in Linux for the ProcessStatus
sysinfo = "0.18.2"
thiserror = "1.0.24"
+time = { version = "0.3.3", features = ["formatting", "local-offset", "macros"] }
toml = "0.5.8"
tui = { version = "0.14.0", features = ["crossterm"], default-features = false }
typed-builder = "0.9.0"
@@ -69,7 +69,7 @@ libc = "0.2.86"
[target.'cfg(target_os = "linux")'.dependencies]
heim = { version = "0.1.0-rc.1", features = ["cpu", "disk", "net", "sensors"] }
-procfs = "0.10.1"
+procfs = { version = "0.11.0", default-features = false }
smol = "1.2.5"
[target.'cfg(target_os = "macos")'.dependencies]
diff --git a/src/app/data_harvester/processes/linux.rs b/src/app/data_harvester/processes/linux.rs
index 87297837..d7d621dc 100644
--- a/src/app/data_harvester/processes/linux.rs
+++ b/src/app/data_harvester/processes/linux.rs
@@ -162,7 +162,7 @@ fn read_proc(
use_current_cpu_total,
);
let parent_pid = Some(stat.ppid);
- let mem_usage_bytes = u64::try_from(stat.rss_bytes()).unwrap_or(0);
+ let mem_usage_bytes = u64::try_from(stat.rss_bytes()?).unwrap_or(0);
let mem_usage_kb = mem_usage_bytes / 1024;
let mem_usage_percent = mem_usage_kb as f64 / mem_total_kb as f64 * 100.0;
diff --git a/src/data_conversion.rs b/src/data_conversion.rs
index 7e4d214e..5aaa9f31 100644
--- a/src/data_conversion.rs
+++ b/src/data_conversion.rs
@@ -1375,13 +1375,13 @@ pub fn convert_battery_harvest(
charge_percentage: battery_harvest.charge_percent,
watt_consumption: format!("{:.2}W", battery_harvest.power_consumption_rate_watts),
duration_until_empty: if let Some(secs_till_empty) = battery_harvest.secs_until_empty {
- let time = chrono::Duration::seconds(secs_till_empty);
- let num_minutes = time.num_minutes() - time.num_hours() * 60;
- let num_seconds = time.num_seconds() - time.num_minutes() * 60;
+ let time = time::Duration::seconds(secs_till_empty);
+ let num_minutes = time.whole_minutes() - time.whole_hours() * 60;
+ let num_seconds = time.whole_seconds() - time.whole_minutes() * 60;
Some(format!(
"{} hour{}, {} minute{}, {} second{}",
- time.num_hours(),
- if time.num_hours() == 1 { "" } else { "s" },
+ time.whole_hours(),
+ if time.whole_hours() == 1 { "" } else { "s" },
num_minutes,
if num_minutes == 1 { "" } else { "s" },
num_seconds,
@@ -1391,13 +1391,13 @@ pub fn convert_battery_harvest(
None
},
duration_until_full: if let Some(secs_till_full) = battery_harvest.secs_until_full {
- let time = chrono::Duration::seconds(secs_till_full); // FIXME [DEP]: Can I get rid of chrono?
- let num_minutes = time.num_minutes() - time.num_hours() * 60;
- let num_seconds = time.num_seconds() - time.num_minutes() * 60;
+ let time = time::Duration::seconds(secs_till_full);
+ let num_minutes = time.whole_minutes() - time.whole_hours() * 60;
+ let num_seconds = time.whole_seconds() - time.whole_minutes() * 60;
Some(format!(
"{} hour{}, {} minute{}, {} second{}",
- time.num_hours(),
- if time.num_hours() == 1 { "" } else { "s" },
+ time.whole_hours(),
+ if time.whole_hours() == 1 { "" } else { "s" },
num_minutes,
if num_minutes == 1 { "" } else { "s" },
num_seconds,
diff --git a/src/utils/logging.rs b/src/utils/logging.rs
index 704f6434..2e021588 100644
--- a/src/utils/logging.rs
+++ b/src/utils/logging.rs
@@ -4,9 +4,17 @@ pub fn init_logger(
) -> Result<(), fern::InitError> {
fern::Dispatch::new()
.format(|out, message, record| {
+ let offset = time::OffsetDateTime::now_utc();
+
out.finish(format_args!(
"{}[{}][{}] {}",
- chrono::Local::now().format("[%Y-%m-%d][%H:%M:%S:%f]"),
+ offset
+ .format(&time::macros::format_description!(
+ // The weird "[[[" is because we need to escape a bracket ("[[") to show one "[".
+ // See https://time-rs.github.io/book/api/format-description.html
+ "[[[year]-[month]-[day]][[[hour]:[minute]:[second][subsecond digits:9]]"
+ ))
+ .unwrap(),
record.target(),
record.level(),
message