From b36daa5aeaa354b6c4f45b7ae67ac1a6345ea1c0 Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Sun, 17 Sep 2023 18:18:53 +0000 Subject: [PATCH 01/21] chore: dependencies updated --- Cargo.lock | 134 ++++++++++++++++++++++++++++++----------------------- Cargo.toml | 2 +- 2 files changed, 77 insertions(+), 59 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 04fab78..f9f51dc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -48,9 +48,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15c4c2c83f81532e5845a733998b6971faca23490340a418e9b72a3ec9de12ea" +checksum = "b84bf0a05bbb2a83e5eb6fa36bb6e87baa08193c35ff52bbf6b38d8af2890e46" [[package]] name = "anstyle-parse" @@ -109,15 +109,9 @@ dependencies = [ [[package]] name = "base64" -version = "0.13.1" +version = "0.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "414dcefbc63d77c526a76b3afcf6fbb9b5e2791c19c3aa2297733208750c6e53" +checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" [[package]] name = "bitflags" @@ -133,11 +127,11 @@ checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" [[package]] name = "bollard" -version = "0.14.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af254ed2da4936ef73309e9597180558821cb16ae9bba4cb24ce6b612d8d80ed" +checksum = "f03db470b3c0213c47e978da93200259a1eb4dae2e5512cba9955e2b540a6fc6" dependencies = [ - "base64 0.21.3", + "base64", "bollard-stubs", "bytes", "futures-core", @@ -162,25 +156,26 @@ dependencies = [ [[package]] name = "bollard-stubs" -version = "1.42.0-rc.7" +version = "1.43.0-rc.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "602bda35f33aeb571cef387dcd4042c643a8bf689d8aaac2cc47ea24cb7bc7e0" +checksum = "b58071e8fd9ec1e930efd28e3a90c1251015872a2ce49f81f36421b86466932e" dependencies = [ "serde", + "serde_repr", "serde_with", ] [[package]] name = "bumpalo" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "cansi" @@ -211,33 +206,32 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.26" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", "num-traits", "serde", - "winapi", + "windows-targets", ] [[package]] name = "clap" -version = "4.4.0" +version = "4.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d5f1946157a96594eb2d2c10eb7ad9a2b27518cb3000209dec700c35df9197d" +checksum = "84ed82781cea27b43c9b106a979fe450a13a31aab0500595fb3fc06616de08e6" dependencies = [ "clap_builder", "clap_derive", - "once_cell", ] [[package]] name = "clap_builder" -version = "4.4.0" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78116e32a042dd73c2901f0dc30790d20ff3447f3e3472fad359e8c3d282bcd6" +checksum = "2bb9faaa7c2ef94b2743a21f5a29e6f0010dff4caa69ac8e9d6cf8b6fa74da08" dependencies = [ "anstream", "anstyle", @@ -249,9 +243,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.4.0" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9fd1a5729c4548118d7d70ff234a44868d00489a4b6597b0b020918a0e91a1a" +checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873" dependencies = [ "heck", "proc-macro2", @@ -317,6 +311,12 @@ version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "fnv" version = "1.0.7" @@ -413,7 +413,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 1.9.3", "slab", "tokio", "tokio-util", @@ -426,6 +426,12 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +[[package]] +name = "hashbrown" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" + [[package]] name = "heck" version = "0.4.1" @@ -555,15 +561,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown 0.14.0", "serde", ] [[package]] name = "indoc" -version = "2.0.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c785eefb63ebd0e33416dfcb8d6da0bf27ce752843a45632a67bf10d4d4b5c4" +checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8" [[package]] name = "itertools" @@ -597,9 +614,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.148" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" [[package]] name = "lock_api" @@ -619,9 +636,9 @@ checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" [[package]] name = "miniz_oxide" @@ -675,9 +692,9 @@ dependencies = [ [[package]] name = "object" -version = "0.32.0" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ac5bbd07aea88c60a577a1ce218075ffd59208b2d7ca97adf9bfc5aeb21ebe" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" dependencies = [ "memchr", ] @@ -787,9 +804,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro2" -version = "1.0.66" +version = "1.0.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328" dependencies = [ "unicode-ident", ] @@ -905,9 +922,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.105" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360" +checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" dependencies = [ "itoa", "ryu", @@ -939,14 +956,15 @@ dependencies = [ [[package]] name = "serde_with" -version = "2.3.3" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" +checksum = "1ca3b16a3d82c4088f343b7480a93550b3eabe1a358569c2dfe38bbcead07237" dependencies = [ - "base64 0.13.1", + "base64", "chrono", "hex", - "indexmap", + "indexmap 1.9.3", + "indexmap 2.0.0", "serde", "serde_json", "time", @@ -1018,9 +1036,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877" +checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e" dependencies = [ "libc", "windows-sys", @@ -1056,9 +1074,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.29" +version = "2.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a" +checksum = "91e02e55d62894af2a08aca894c6577281f76769ba47c94d5756bec8ac6e7373" dependencies = [ "proc-macro2", "quote", @@ -1067,18 +1085,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.47" +version = "1.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f" +checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.47" +version = "1.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b" +checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35" dependencies = [ "proc-macro2", "quote", @@ -1152,7 +1170,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.3", + "socket2 0.5.4", "tokio-macros", "windows-sys", ] @@ -1269,9 +1287,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" diff --git a/Cargo.toml b/Cargo.toml index 9f84284..c567275 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,7 @@ categories = ["command-line-utilities"] [dependencies] anyhow = "1.0" -bollard = "0.14" +bollard = "0.15" cansi = "2.2" clap = { version = "4.3", features = ["derive", "unicode", "color"] } crossterm = "0.27" From 18c3ed43376a8b5e2d285d1b34a9f96843357d53 Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Sun, 17 Sep 2023 18:19:48 +0000 Subject: [PATCH 02/21] refactor: env handling target specific env's rather than looping through them all --- src/main.rs | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/main.rs b/src/main.rs index 125a333..6b15751 100644 --- a/src/main.rs +++ b/src/main.rs @@ -58,21 +58,20 @@ fn setup_tracing() { /// An ENV is set in the ./containerised/Dockerfile, if this is ENV found, then sleep for 250ms, else the container, for as yet unknown reasons, will close immediately /// returns a bool, so that the `update_all_containers()` won't bother to check the entry point unless running via a container fn check_if_containerised() -> bool { - if std::env::vars().any(|x| x == (ENV_KEY.into(), ENV_VALUE.into())) { - std::thread::sleep(std::time::Duration::from_millis(250)); - true - } else { - false + if let Ok(value) = std::env::var(ENV_KEY) { + if value == ENV_VALUE { + std::thread::sleep(std::time::Duration::from_millis(250)); + return true; + } } + false } /// Read the optional docker_host path, the cli args take priority over the DOCKER_HOST env fn read_docker_host(args: &CliArgs) -> Option { args.host.as_ref().map_or_else( || { - std::env::vars() - .find(|x| x.0 == DOCKER_HOST) - .map(|(_, val)| val) + std::env::var(DOCKER_HOST).ok() }, |x| Some(x.to_string()), ) From ca79893df5f05ebf445ce194d578cb8213c9755e Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Sun, 17 Sep 2023 18:41:10 +0000 Subject: [PATCH 03/21] refactor: from string impl Remove redudant impl's, use `.as_str()` --- src/app_data/container_state.rs | 26 -------------------------- src/app_data/mod.rs | 11 ++++------- src/docker_data/mod.rs | 2 +- 3 files changed, 5 insertions(+), 34 deletions(-) diff --git a/src/app_data/container_state.rs b/src/app_data/container_state.rs index 974356b..a54608d 100644 --- a/src/app_data/container_state.rs +++ b/src/app_data/container_state.rs @@ -18,18 +18,6 @@ const ONE_GB: f64 = ONE_MB * 1000.0; #[derive(Debug, Clone, Eq, Hash, PartialEq)] pub struct ContainerId(String); -impl From for ContainerId { - fn from(x: String) -> Self { - Self(x) - } -} - -impl From<&String> for ContainerId { - fn from(x: &String) -> Self { - Self(x.clone()) - } -} - impl From<&str> for ContainerId { fn from(x: &str) -> Self { Self(x.to_owned()) @@ -156,20 +144,6 @@ impl State { } } -impl From for State { - fn from(input: String) -> Self { - match input.as_ref() { - "dead" => Self::Dead, - "exited" => Self::Exited, - "paused" => Self::Paused, - "removing" => Self::Removing, - "restarting" => Self::Restarting, - "running" => Self::Running, - _ => Self::Unknown, - } - } -} - impl From<&str> for State { fn from(input: &str) -> Self { match input { diff --git a/src/app_data/mod.rs b/src/app_data/mod.rs index 0d5db00..6abeacc 100644 --- a/src/app_data/mod.rs +++ b/src/app_data/mod.rs @@ -426,7 +426,7 @@ impl AppData { /// So can display nicely and evenly pub fn get_width(&self) -> Columns { let mut columns = Columns::new(); - let count = |x: &String| u8::try_from(x.chars().count()).unwrap_or(12); + let count = |x: &str| u8::try_from(x.chars().count()).unwrap_or(12); // Should probably find a refactor here somewhere for container in &self.containers.items { @@ -552,9 +552,6 @@ impl AppData { } } - // Trim a &String and return String - let trim_owned = |x: &String| x.trim().to_owned(); - for i in all_containers { if let Some(id) = i.id.as_ref() { let name = i.names.as_mut().map_or(String::new(), |names| { @@ -571,15 +568,15 @@ impl AppData { .as_ref() .map_or(false, |i| i.starts_with(ENTRY_POINT)); - let state = State::from(i.state.as_ref().map_or("dead".to_owned(), trim_owned)); - let status = i.status.as_ref().map_or(String::new(), trim_owned); + let state = State::from(i.state.as_ref().map_or("dead", |z| z)); + let status = i.status.as_ref().map_or(String::new(), std::clone::Clone::clone); let image = i .image .as_ref() .map_or(String::new(), std::clone::Clone::clone); - let id = ContainerId::from(id); + let id = ContainerId::from(id.as_str()); let created = i .created diff --git a/src/docker_data/mod.rs b/src/docker_data/mod.rs index 51d5437..1540597 100644 --- a/src/docker_data/mod.rs +++ b/src/docker_data/mod.rs @@ -216,7 +216,7 @@ impl DockerData { ( i.state == Some("running".to_owned()) || i.state == Some("restarting".to_owned()), - ContainerId::from(id), + ContainerId::from(id.as_str()), ) }) }) From 21234c66c3935330ccd58543dd3a915a293ac776 Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Thu, 5 Oct 2023 19:54:05 +0000 Subject: [PATCH 04/21] chore: Rust 1.73 linting --- src/app_data/container_state.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app_data/container_state.rs b/src/app_data/container_state.rs index a54608d..26b3272 100644 --- a/src/app_data/container_state.rs +++ b/src/app_data/container_state.rs @@ -248,7 +248,7 @@ impl PartialEq for CpuStats { impl PartialOrd for CpuStats { fn partial_cmp(&self, other: &Self) -> Option { - self.0.partial_cmp(&other.0) + Some(self.cmp(other)) } } @@ -291,7 +291,7 @@ impl PartialEq for ByteStats { impl PartialOrd for ByteStats { fn partial_cmp(&self, other: &Self) -> Option { - self.0.partial_cmp(&other.0) + Some(self.cmp(other)) } } From ec93115ece83002fa127f3358f573319e29357e1 Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Mon, 9 Oct 2023 19:13:17 +0000 Subject: [PATCH 05/21] chore: dependencies updated --- Cargo.lock | 100 ++++++++++++++++++++++++++--------------------------- Cargo.toml | 4 +-- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f9f51dc..b34b299 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -34,9 +34,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.5.0" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c" +checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" dependencies = [ "anstyle", "anstyle-parse", @@ -48,15 +48,15 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b84bf0a05bbb2a83e5eb6fa36bb6e87baa08193c35ff52bbf6b38d8af2890e46" +checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" [[package]] name = "anstyle-parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" +checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140" dependencies = [ "utf8parse", ] @@ -72,9 +72,9 @@ dependencies = [ [[package]] name = "anstyle-wincon" -version = "2.1.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd" +checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" dependencies = [ "anstyle", "windows-sys", @@ -219,9 +219,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.3" +version = "4.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84ed82781cea27b43c9b106a979fe450a13a31aab0500595fb3fc06616de08e6" +checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956" dependencies = [ "clap_builder", "clap_derive", @@ -229,9 +229,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.2" +version = "4.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bb9faaa7c2ef94b2743a21f5a29e6f0010dff4caa69ac8e9d6cf8b6fa74da08" +checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45" dependencies = [ "anstream", "anstyle", @@ -428,9 +428,9 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "hashbrown" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12" [[package]] name = "heck" @@ -440,9 +440,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" [[package]] name = "hex" @@ -567,12 +567,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.0.0" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897" dependencies = [ "equivalent", - "hashbrown 0.14.0", + "hashbrown 0.14.1", "serde", ] @@ -614,9 +614,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.148" +version = "0.2.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" +checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" [[package]] name = "lock_api" @@ -636,9 +636,9 @@ checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "memchr" -version = "2.6.3" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "miniz_oxide" @@ -673,9 +673,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg", ] @@ -804,9 +804,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro2" -version = "1.0.67" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] @@ -964,7 +964,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.0.0", + "indexmap 2.0.2", "serde", "serde_json", "time", @@ -972,9 +972,9 @@ dependencies = [ [[package]] name = "sharded-slab" -version = "0.1.4" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ "lazy_static", ] @@ -1020,9 +1020,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" +checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "socket2" @@ -1074,9 +1074,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.36" +version = "2.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e02e55d62894af2a08aca894c6577281f76769ba47c94d5756bec8ac6e7373" +checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" dependencies = [ "proc-macro2", "quote", @@ -1085,18 +1085,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.48" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7" +checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.48" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35" +checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc" dependencies = [ "proc-macro2", "quote", @@ -1115,9 +1115,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48" +checksum = "426f806f4089c493dcac0d24c29c01e2c38baf8e30f1b716ee37e83d200b18fe" dependencies = [ "deranged", "itoa", @@ -1128,15 +1128,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" dependencies = [ "time-core", ] @@ -1158,9 +1158,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.32.0" +version = "1.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" +checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" dependencies = [ "backtrace", "bytes", @@ -1188,9 +1188,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" +checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d" dependencies = [ "bytes", "futures-core", @@ -1308,9 +1308,9 @@ checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" [[package]] name = "unicode-width" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" [[package]] name = "url" diff --git a/Cargo.toml b/Cargo.toml index c567275..29b484b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,11 +15,11 @@ categories = ["command-line-utilities"] anyhow = "1.0" bollard = "0.15" cansi = "2.2" -clap = { version = "4.3", features = ["derive", "unicode", "color"] } +clap = { version = "4.4", features = ["derive", "unicode", "color"] } crossterm = "0.27" futures-util = "0.3" parking_lot = { version= "0.12" } -tokio = { version = "1.32", features = ["full"] } +tokio = { version = "1.33", features = ["full"] } tracing = "0.1" tracing-subscriber = "0.3" ratatui = "0.23" From d46c425fa29f3c1d27bd57764748bae7e0b82f69 Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Mon, 9 Oct 2023 19:13:33 +0000 Subject: [PATCH 06/21] chore: docker-compose Alpine bump --- docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index be077db..cbf627b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,7 +4,7 @@ networks: name: oxker-examaple-net services: postgres: - image: postgres:alpine3.17 + image: postgres:alpine3.18 container_name: postgres environment: - POSTGRES_PASSWORD=never_use_this_password_in_production @@ -18,7 +18,7 @@ services: limits: memory: 128M redis: - image: redis:alpine3.17 + image: redis:alpine3.18 container_name: redis ipc: private restart: always From e6eecbbdce9c0ccff42aa8806dddb6e3364f990c Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Wed, 18 Oct 2023 10:24:53 +0000 Subject: [PATCH 07/21] chore: dependencies updated --- Cargo.lock | 77 +++++++++++++++++++++++++++++------------------------- 1 file changed, 42 insertions(+), 35 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b34b299..15c6d99 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -121,9 +121,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" [[package]] name = "bollard" @@ -277,7 +277,7 @@ version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "crossterm_winapi", "libc", "mio", @@ -298,10 +298,11 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946" +checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" dependencies = [ + "powerfmt", "serde", ] @@ -523,16 +524,16 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.57" +version = "0.1.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" +checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows", + "windows-core", ] [[package]] @@ -620,9 +621,9 @@ checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" [[package]] name = "lock_api" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" dependencies = [ "autocfg", "scopeguard", @@ -741,9 +742,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if", "libc", @@ -796,6 +797,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "ppv-lite86" version = "0.2.17" @@ -856,7 +863,7 @@ version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e2e4cd95294a85c3b4446e63ef054eea43e0205b1fd60120c16b74ff7ff96ad" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "cassowary", "crossterm", "indoc", @@ -869,9 +876,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.3.5" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ "bitflags 1.3.2", ] @@ -902,18 +909,18 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "serde" -version = "1.0.188" +version = "1.0.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" +checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.188" +version = "1.0.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" +checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5" dependencies = [ "proc-macro2", "quote", @@ -956,9 +963,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ca3b16a3d82c4088f343b7480a93550b3eabe1a358569c2dfe38bbcead07237" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" dependencies = [ "base64", "chrono", @@ -1061,9 +1068,9 @@ dependencies = [ [[package]] name = "strum_macros" -version = "0.25.2" +version = "0.25.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad8d03b598d3d0fff69bf533ee3ef19b8eeb342729596df84bcc7e1f96ec4059" +checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" dependencies = [ "heck", "proc-macro2", @@ -1115,12 +1122,13 @@ dependencies = [ [[package]] name = "time" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "426f806f4089c493dcac0d24c29c01e2c38baf8e30f1b716ee37e83d200b18fe" +checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" dependencies = [ "deranged", "itoa", + "powerfmt", "serde", "time-core", "time-macros", @@ -1208,11 +1216,10 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.37" +version = "0.1.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +checksum = "ee2ef2af84856a50c1d430afce2fdded0a4ec7eda868db86409b4543df0797f9" dependencies = [ - "cfg-if", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -1220,9 +1227,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", @@ -1231,9 +1238,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", "valuable", @@ -1443,10 +1450,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] -name = "windows" -version = "0.48.0" +name = "windows-core" +version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" dependencies = [ "windows-targets", ] From 3fd3915b3e929742d8007109fd4c7b4a345eb0fa Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Wed, 18 Oct 2023 10:25:09 +0000 Subject: [PATCH 08/21] docs: README.md update --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6c1632f..6c0140e 100644 --- a/README.md +++ b/README.md @@ -166,11 +166,11 @@ docker compose -f docker-compose.yml up -d or individually ```shell -docker run --name redis -d redis:alpine3.17 +docker run --name redis -d redis:alpine3.18 ``` ```shell -docker run --name postgres -e POSTGRES_PASSWORD=never_use_this_password_in_production -d postgres:alpine3.17 +docker run --name postgres -e POSTGRES_PASSWORD=never_use_this_password_in_production -d postgres:alpine3.18 ``` ```shell From 44f581f5b3652cc4e623fe145141878754dca292 Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Wed, 18 Oct 2023 10:25:34 +0000 Subject: [PATCH 09/21] refactor: LogsTZ from `&str` --- src/app_data/container_state.rs | 4 ++-- src/app_data/mod.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/app_data/container_state.rs b/src/app_data/container_state.rs index 26b3272..607baa8 100644 --- a/src/app_data/container_state.rs +++ b/src/app_data/container_state.rs @@ -341,8 +341,8 @@ pub struct LogsTz(String); /// The docker log, which should always contain a timestamp, is in the format `2023-01-14T19:13:30.783138328Z Lorem ipsum dolor sit amet` /// So just split at the inclusive index of the first space, needs to be inclusive, hence the use of format to at the space, so that we can remove the whole thing when the `-t` flag is set /// Need to make sure that this isn't an empty string?! -impl From<&String> for LogsTz { - fn from(value: &String) -> Self { +impl From<&str> for LogsTz { + fn from(value: &str) -> Self { Self(value.split_inclusive(' ').take(1).collect::()) } } diff --git a/src/app_data/mod.rs b/src/app_data/mod.rs index 6abeacc..903090e 100644 --- a/src/app_data/mod.rs +++ b/src/app_data/mod.rs @@ -625,7 +625,7 @@ impl AppData { let current_len = container.logs.len(); for mut i in logs { - let tz = LogsTz::from(&i); + let tz = LogsTz::from(i.as_str()); // Strip the timestamp if `-t` flag set if !timestamp { i = i.replace(&tz.to_string(), ""); From 61df0bbe88710013309db36162919db606ca0c20 Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Wed, 18 Oct 2023 10:30:48 +0000 Subject: [PATCH 10/21] docs: changelog --- CHANGELOG.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a9a4390..2cb8853 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ +### Chores ++ docker-compose Alpine bump, [d46c425fa29f3c1d27bd57764748bae7e0b82f69] ++ dependencies updated, [e6eecbbdce9c0ccff42aa8806dddb6e3364f990c], [ec93115ece83002fa127f3358f573319e29357e1], [b36daa5aeaa354b6c4f45b7ae67ac1a6345ea1c0] ++ Rust 1.73 linting, [21234c66c3935330ccd58543dd3a915a293ac776] + +### Docs ++ README.md updated, [3fd3915b3e929742d8007109fd4c7b4a345eb0fa] + +### Refactors ++ LogsTZ from `&str`, [44f581f5b3652cc4e623fe145141878754dca292] ++ from string impl, [ca79893df5f05ebf445ce194d578cb8213c9755e] ++ env handling, [18c3ed43376a8b5e2d285d1b34a9f96843357d53] + # v0.3.2 ### 2023-08-28 From a6ff4124319ed17d3f1c46c916418f850ef1d3b0 Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Wed, 18 Oct 2023 10:38:06 +0000 Subject: [PATCH 11/21] refactor: `parse_args/mod.rs` > `parse_args.rs` --- src/{parse_args/mod.rs => parse_args.rs} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/{parse_args/mod.rs => parse_args.rs} (100%) diff --git a/src/parse_args/mod.rs b/src/parse_args.rs similarity index 100% rename from src/parse_args/mod.rs rename to src/parse_args.rs From 322476f34163ca2d17dc630cd35983df4d37713b Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Wed, 18 Oct 2023 10:38:38 +0000 Subject: [PATCH 12/21] docs; changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2cb8853..22abafb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ + LogsTZ from `&str`, [44f581f5b3652cc4e623fe145141878754dca292] + from string impl, [ca79893df5f05ebf445ce194d578cb8213c9755e] + env handling, [18c3ed43376a8b5e2d285d1b34a9f96843357d53] ++ `parse_args/mod.rs` > `parse_args.rs`, [a6ff4124319ed17d3f1c46c916418f850ef1d3b0] # v0.3.2 ### 2023-08-28 From faeaca0cd1bb243c7f4a7112b928be776b877ca1 Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Wed, 18 Oct 2023 10:44:49 +0000 Subject: [PATCH 13/21] refactor: set_info_box take `&str` --- src/input_handler/mod.rs | 4 ++-- src/ui/gui_state.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/input_handler/mod.rs b/src/input_handler/mod.rs index 4341e86..c05164c 100644 --- a/src/input_handler/mod.rs +++ b/src/input_handler/mod.rs @@ -91,7 +91,7 @@ impl InputHandler { if execute!(std::io::stdout(), DisableMouseCapture).is_ok() { self.gui_state .lock() - .set_info_box("✖ mouse capture disabled".to_owned()); + .set_info_box("✖ mouse capture disabled"); } else { self.app_data.lock().set_error( AppError::MouseCapture(false), @@ -102,7 +102,7 @@ impl InputHandler { } else if Ui::enable_mouse_capture().is_ok() { self.gui_state .lock() - .set_info_box("✓ mouse capture enabled".to_owned()); + .set_info_box("✓ mouse capture enabled"); } else { self.app_data.lock().set_error( AppError::MouseCapture(true), diff --git a/src/ui/gui_state.rs b/src/ui/gui_state.rs index a08f3cc..18e92f5 100644 --- a/src/ui/gui_state.rs +++ b/src/ui/gui_state.rs @@ -304,8 +304,8 @@ impl GuiState { } /// Set info box content - pub fn set_info_box(&mut self, text: String) { - self.info_box_text = Some(text); + pub fn set_info_box(&mut self, text: &str) { + self.info_box_text = Some(text.to_owned()); } /// Remove info box content From a9e292c55e238c573738e51a4585d23408763364 Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Wed, 18 Oct 2023 10:47:46 +0000 Subject: [PATCH 14/21] docs: changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 22abafb..fdad390 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ + from string impl, [ca79893df5f05ebf445ce194d578cb8213c9755e] + env handling, [18c3ed43376a8b5e2d285d1b34a9f96843357d53] + `parse_args/mod.rs` > `parse_args.rs`, [a6ff4124319ed17d3f1c46c916418f850ef1d3b0] ++ set_info_box take `&str`, [faeaca0cd1bb243c7f4a7112b928be776b877ca1] # v0.3.2 ### 2023-08-28 From 9c0de1f0feff3165d0f5b6cb5dda843c124bcfa4 Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Thu, 19 Oct 2023 19:20:29 +0000 Subject: [PATCH 15/21] chore: dependencies updated --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 15c6d99..c91fe0c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1092,18 +1092,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.49" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.49" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", @@ -1216,9 +1216,9 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.39" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2ef2af84856a50c1d430afce2fdded0a4ec7eda868db86409b4543df0797f9" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -1338,9 +1338,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "uuid" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" +checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc" dependencies = [ "getrandom", "rand", diff --git a/Cargo.toml b/Cargo.toml index 29b484b..1baf43e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,7 +23,7 @@ tokio = { version = "1.33", features = ["full"] } tracing = "0.1" tracing-subscriber = "0.3" ratatui = "0.23" -uuid = { version = "1.4", features = ["v4", "fast-rng"] } +uuid = { version = "1.5", features = ["v4", "fast-rng"] } [dev-dependencies] From 30d89d9abcc63a1caf58b90402d25742db11c2dc Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Thu, 19 Oct 2023 19:21:30 +0000 Subject: [PATCH 16/21] docs: changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fdad390..cd494ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ### Chores + docker-compose Alpine bump, [d46c425fa29f3c1d27bd57764748bae7e0b82f69] -+ dependencies updated, [e6eecbbdce9c0ccff42aa8806dddb6e3364f990c], [ec93115ece83002fa127f3358f573319e29357e1], [b36daa5aeaa354b6c4f45b7ae67ac1a6345ea1c0] ++ dependencies updated, [e6eecbbdce9c0ccff42aa8806dddb6e3364f990c], [ec93115ece83002fa127f3358f573319e29357e1], [b36daa5aeaa354b6c4f45b7ae67ac1a6345ea1c0], [9c0de1f0feff3165d0f5b6cb5dda843c124bcfa4] + Rust 1.73 linting, [21234c66c3935330ccd58543dd3a915a293ac776] ### Docs From 85f1982f4066bfdbc764ab7b88588eded6a17f96 Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Sat, 21 Oct 2023 15:25:24 +0000 Subject: [PATCH 17/21] refactor: GitHub action matrix build Build for each platform using concurrency, re-arrange order of the workflow --- .../workflows/create_release_and_build.yml | 171 +++++++++++------- 1 file changed, 101 insertions(+), 70 deletions(-) diff --git a/.github/workflows/create_release_and_build.yml b/.github/workflows/create_release_and_build.yml index be62629..81f7265 100644 --- a/.github/workflows/create_release_and_build.yml +++ b/.github/workflows/create_release_and_build.yml @@ -3,69 +3,117 @@ on: push: tags: - 'v[0-9]+.[0-9]+.[0-9]+' + jobs: - deploy: + + ################################################# + ## Cross platform binary build for release page # + ################################################# + + cross_platform_build: + strategy: + matrix: + platform: + - target: x86_64-unknown-linux-musl + - target: aarch64-unknown-linux-musl + - target: arm-unknown-linux-musleabihf + - target: x86_64-pc-windows-gnu + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + # Install stable rust, and associated tools + - name: install rust + uses: dtolnay/rust-toolchain@stable + + # Install cross-rs + - name: install cross + run: cargo install cross --git https://github.com/cross-rs/cross + + # Set env's + - name: set names + run: | + translate_platform() { case "$1" in x86_64-unknown-linux-musl) echo "linux_x86_64.tar.gz";; aarch64-unknown-linux-musl) echo "linux_aarch64.tar.gz";; arm-unknown-linux-musleabihf) echo "linux_armv6.tar.gz";; x86_64-pc-windows-gnu) echo "windows_x86_64.zip";; *) echo "Error: Unsupported platform $1"; exit 1;; esac; } + target_platform="${{ matrix.platform.target }}" + output_name=$(translate_platform "$target_platform") + echo "TARGET_OUTPUT_NAME=${output_name}" >> $GITHUB_ENV + echo "TARGET_PLATFORM=${target_platform}" >> $GITHUB_ENV + + # Build binary + - name: build + run: cross build --target "${TARGET_PLATFORM}" --release + + # Compress, rename, and move + - name: compress + run: | + if [[ $TARGET_PLATFORM == *windows-gnu* ]]; then + zip -j "./oxker_${TARGET_OUTPUT_NAME}" target/${TARGET_PLATFORM}/release/oxker.exe + else + tar -C "target/${TARGET_PLATFORM}/release" -czf "./oxker_${TARGET_OUTPUT_NAME}" oxker + fi + + # Upload output for release page + - name: Upload Artifacts + uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + name: ${{ env.TARGET_PLATFORM }} + path: oxker_${{ env.TARGET_OUTPUT_NAME }} + retention-days: 1 + + ################### + ## Create release # + ################### + + create_release: + needs: [cross_platform_build] + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup | Artifacts + uses: actions/download-artifact@v3 + + - name: Update Release + uses: ncipollo/release-action@v1.12.0 + with: + makeLatest: true + name: ${{ github.ref_name }} + tag: ${{ github.ref }} + bodyFile: ".github/release-body.md" + token: ${{ secrets.GITHUB_TOKEN }} + artifacts: | + **/oxker_*.zip + **/oxker_*.tar.gz + + ######################### + ## Publish to crates.io # + ######################### + + cargo_publish: + needs: [create_release] runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 - - ######################### - ## Publish to crates.io # - ######################### + uses: actions/checkout@v4 - name: publish to crates.io uses: katyo/publish-crates@v1 with: registry-token: ${{ secrets.CRATES_IO_TOKEN }} - #################################### - ## Build binaries for release page # - #################################### - - # Install stable rust, and associated tools - - name: install rust - uses: dtolnay/rust-toolchain@stable + ######################################### + ## Build images for Dockerhub & ghcr.io # + ######################################### - # Setup caching - not sure if will have any effect - - name: Rust cache - uses: swatinem/rust-cache@v2 - - # Install cross-rs - - name: install cross - run: cargo install cross --git https://github.com/cross-rs/cross - - # Build for linux x86 musl - - name: build x86_64-unknown-linux-musl - run: cross build --target x86_64-unknown-linux-musl --release - # Compress output into tar - - name: compress aarch64 binary - run: tar -C target/x86_64-unknown-linux-musl/release -czf ./oxker_linux_x86_64.tar.gz oxker - - # Build for linux aarch64, aka 64 bit pi 4 - - name: build aarch64-unknown-linux-musl - run: cross build --target aarch64-unknown-linux-musl --release - # Compress output into tar - - name: compress aarch64 binary - run: tar -C target/aarch64-unknown-linux-musl/release -czf ./oxker_linux_aarch64.tar.gz oxker - - # Build for linux armv6, aka 32 bit pi zero w - - name: build arm-unknown-linux-musleabihf - run: cross build --target arm-unknown-linux-musleabihf --release - # Compress output into tar - - name: compress armv6 binary - run: tar -C target/arm-unknown-linux-musleabihf/release -czf ./oxker_linux_armv6.tar.gz oxker - - # Build for windows - - name: build release windows_x86_64 - run: cross build --target x86_64-pc-windows-gnu --release - # Compress output into zip - - name: compress windows_x86_64 binary - run: zip -j ./oxker_windows_x86_64.zip target/x86_64-pc-windows-gnu/release/oxker.exe - - ######################################### - ## Build images for Dockerhub & ghcr.io # - ######################################### + image_build: + needs: [cargo_publish] + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 - name: Login to GitHub Container Registry uses: docker/login-action@v2 @@ -100,21 +148,4 @@ jobs: --push \ -f containerised/Dockerfile . - ################### - ## Create release # - ################### - - - name: Release - uses: softprops/action-gh-release@v1 - with: - tag_name: ${{ github.ref }} - name: ${{ github.ref_name }} - body_path: ".github/release-body.md" - draft: false - files: | - oxker_linux_x86_64.tar.gz - oxker_linux_aarch64.tar.gz - oxker_linux_armv6.tar.gz - oxker_windows_x86_64.zip - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + From 6dd953df458096aee5914411ce40e46c3f600ede Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Sat, 21 Oct 2023 15:26:01 +0000 Subject: [PATCH 18/21] chore: dependencies updated --- Cargo.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c91fe0c..12ba50b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -429,9 +429,9 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "hashbrown" -version = "0.14.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12" +checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" [[package]] name = "heck" @@ -502,7 +502,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.9", + "socket2 0.4.10", "tokio", "tower-service", "tracing", @@ -573,7 +573,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897" dependencies = [ "equivalent", - "hashbrown 0.14.1", + "hashbrown 0.14.2", "serde", ] @@ -1033,9 +1033,9 @@ checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "socket2" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" dependencies = [ "libc", "winapi", @@ -1043,9 +1043,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" dependencies = [ "libc", "windows-sys", @@ -1178,7 +1178,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.4", + "socket2 0.5.5", "tokio-macros", "windows-sys", ] From 162b6f3a279770f483a228d9d5c0d41db8cdb656 Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Sat, 21 Oct 2023 15:27:02 +0000 Subject: [PATCH 19/21] docs: changelog --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cd494ba..54f6841 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ### Chores + docker-compose Alpine bump, [d46c425fa29f3c1d27bd57764748bae7e0b82f69] -+ dependencies updated, [e6eecbbdce9c0ccff42aa8806dddb6e3364f990c], [ec93115ece83002fa127f3358f573319e29357e1], [b36daa5aeaa354b6c4f45b7ae67ac1a6345ea1c0], [9c0de1f0feff3165d0f5b6cb5dda843c124bcfa4] ++ dependencies updated, [e6eecbbdce9c0ccff42aa8806dddb6e3364f990c], [ec93115ece83002fa127f3358f573319e29357e1], [b36daa5aeaa354b6c4f45b7ae67ac1a6345ea1c0], [9c0de1f0feff3165d0f5b6cb5dda843c124bcfa4], [6dd953df458096aee5914411ce40e46c3f600ede] + Rust 1.73 linting, [21234c66c3935330ccd58543dd3a915a293ac776] ### Docs @@ -12,6 +12,7 @@ + env handling, [18c3ed43376a8b5e2d285d1b34a9f96843357d53] + `parse_args/mod.rs` > `parse_args.rs`, [a6ff4124319ed17d3f1c46c916418f850ef1d3b0] + set_info_box take `&str`, [faeaca0cd1bb243c7f4a7112b928be776b877ca1] ++ GitHub action use concurrency matrix, re-roder workflow, [85f1982f4066bfdbc764ab7b88588eded6a17f96] # v0.3.2 ### 2023-08-28 From 8ecec7869c3ab342532660026c5f2de868d6f6db Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Sat, 21 Oct 2023 16:02:13 +0000 Subject: [PATCH 20/21] chore: devcontainer plugin added --- .devcontainer/devcontainer.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 3834500..d86c30d 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -34,6 +34,8 @@ "ms-vscode.live-server", "mutantdino.resourcemonitor", "rangav.vscode-thunder-client", + "redhat.vscode-yaml", + "redhat.vscode-yaml", "rust-lang.rust-analyzer", "serayuzgur.crates", "tamasfe.even-better-toml", From 09bf70abd28f64e94911812fbd1455e1e0b3a45a Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Sat, 21 Oct 2023 16:25:42 +0000 Subject: [PATCH 21/21] chore: release v0.3.3 --- .github/release-body.md | 19 ++++++++++++------- CHANGELOG.md | 23 +++++++++++++---------- Cargo.lock | 2 +- Cargo.toml | 2 +- src/app_data/container_state.rs | 4 ++-- src/app_data/mod.rs | 5 ++++- src/main.rs | 9 +++------ 7 files changed, 36 insertions(+), 28 deletions(-) diff --git a/.github/release-body.md b/.github/release-body.md index a9b7b47..26e3358 100644 --- a/.github/release-body.md +++ b/.github/release-body.md @@ -1,15 +1,20 @@ -### 2023-08-28 +### 2023-10-21 ### Chores -+ dependencies updated, [8ce5a1877a8c56d9bbab560c97e2596ea87cc4c0], [94a20584e6ef0701c9f36838b0dfbcd911698dbe], [29e02e0d1faae4a836c7e5cfd0d791338ff586e3], [8e4c2e686761df56920df2267b765ab1297c9972] -+ `_typos.toml` added, [84ba1020939606abf4a287cbd1de1f3a10d3f0c0] ++ docker-compose Alpine bump, [d46c425fa29f3c1d27bd57764748bae7e0b82f69] ++ dependencies updated, [e6eecbbdce9c0ccff42aa8806dddb6e3364f990c], [ec93115ece83002fa127f3358f573319e29357e1], [b36daa5aeaa354b6c4f45b7ae67ac1a6345ea1c0], [9c0de1f0feff3165d0f5b6cb5dda843c124bcfa4], [6dd953df458096aee5914411ce40e46c3f600ede] ++ Rust 1.73 linting, [21234c66c3935330ccd58543dd3a915a293ac776] -### Features -+ Custom hostname. `oxker` will use `$DOCKER_HOST` env if set, or one can use the cli argument `--host`, which takes priority over the `$DOCKER_HOST`, closes #30, [10950787649d2b66fc1e8cd8b85526df51479857] +### Docs ++ README.md updated, [3fd3915b3e929742d8007109fd4c7b4a345eb0fa] ### Refactors -+ `set_error()` takes `gui_state` and error enum, to make sure app_data & gui_state is in sync [62c78dfaa50a8d8c084f7fbf7e203b50aaa731ae] -+ `fn loading_spin` doesn't need to be async, [2e27462d1b3f0bdb27d7646511e36d0c9af07f3e] ++ LogsTZ from `&str`, [44f581f5b3652cc4e623fe145141878754dca292] ++ from string impl, [ca79893df5f05ebf445ce194d578cb8213c9755e] ++ env handling, [18c3ed43376a8b5e2d285d1b34a9f96843357d53] ++ `parse_args/mod.rs` > `parse_args.rs`, [a6ff4124319ed17d3f1c46c916418f850ef1d3b0] ++ set_info_box take `&str`, [faeaca0cd1bb243c7f4a7112b928be776b877ca1] ++ GitHub action use concurrency matrix, re-roder workflow, [85f1982f4066bfdbc764ab7b88588eded6a17f96] see CHANGELOG.md for more details diff --git a/CHANGELOG.md b/CHANGELOG.md index 54f6841..1481fbc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,18 +1,21 @@ +# v0.3.3 +### 2023-10-21 + ### Chores -+ docker-compose Alpine bump, [d46c425fa29f3c1d27bd57764748bae7e0b82f69] -+ dependencies updated, [e6eecbbdce9c0ccff42aa8806dddb6e3364f990c], [ec93115ece83002fa127f3358f573319e29357e1], [b36daa5aeaa354b6c4f45b7ae67ac1a6345ea1c0], [9c0de1f0feff3165d0f5b6cb5dda843c124bcfa4], [6dd953df458096aee5914411ce40e46c3f600ede] -+ Rust 1.73 linting, [21234c66c3935330ccd58543dd3a915a293ac776] ++ docker-compose Alpine bump, [d46c425f](https://github.com/mrjackwills/oxker/commit/d46c425fa29f3c1d27bd57764748bae7e0b82f69) ++ dependencies updated, [e6eecbbd](https://github.com/mrjackwills/oxker/commit/e6eecbbdce9c0ccff42aa8806dddb6e3364f990c), [ec93115e](https://github.com/mrjackwills/oxker/commit/ec93115ece83002fa127f3358f573319e29357e1), [b36daa5a](https://github.com/mrjackwills/oxker/commit/b36daa5aeaa354b6c4f45b7ae67ac1a6345ea1c0), [9c0de1f0](https://github.com/mrjackwills/oxker/commit/9c0de1f0feff3165d0f5b6cb5dda843c124bcfa4), [6dd953df](https://github.com/mrjackwills/oxker/commit/6dd953df458096aee5914411ce40e46c3f600ede) ++ Rust 1.73 linting, [21234c66](https://github.com/mrjackwills/oxker/commit/21234c66c3935330ccd58543dd3a915a293ac776) ### Docs -+ README.md updated, [3fd3915b3e929742d8007109fd4c7b4a345eb0fa] ++ README.md updated, [3fd3915b](https://github.com/mrjackwills/oxker/commit/3fd3915b3e929742d8007109fd4c7b4a345eb0fa) ### Refactors -+ LogsTZ from `&str`, [44f581f5b3652cc4e623fe145141878754dca292] -+ from string impl, [ca79893df5f05ebf445ce194d578cb8213c9755e] -+ env handling, [18c3ed43376a8b5e2d285d1b34a9f96843357d53] -+ `parse_args/mod.rs` > `parse_args.rs`, [a6ff4124319ed17d3f1c46c916418f850ef1d3b0] -+ set_info_box take `&str`, [faeaca0cd1bb243c7f4a7112b928be776b877ca1] -+ GitHub action use concurrency matrix, re-roder workflow, [85f1982f4066bfdbc764ab7b88588eded6a17f96] ++ LogsTZ from `&str`, [44f581f5](https://github.com/mrjackwills/oxker/commit/44f581f5b3652cc4e623fe145141878754dca292) ++ from string impl, [ca79893d](https://github.com/mrjackwills/oxker/commit/ca79893df5f05ebf445ce194d578cb8213c9755e) ++ env handling, [18c3ed43](https://github.com/mrjackwills/oxker/commit/18c3ed43376a8b5e2d285d1b34a9f96843357d53) ++ `parse_args/mod.rs` > `parse_args.rs`, [a6ff4124](https://github.com/mrjackwills/oxker/commit/a6ff4124319ed17d3f1c46c916418f850ef1d3b0) ++ set_info_box take `&str`, [faeaca0c](https://github.com/mrjackwills/oxker/commit/faeaca0cd1bb243c7f4a7112b928be776b877ca1) ++ GitHub action use concurrency matrix, re-roder workflow, [85f1982f](https://github.com/mrjackwills/oxker/commit/85f1982f4066bfdbc764ab7b88588eded6a17f96) # v0.3.2 ### 2023-08-28 diff --git a/Cargo.lock b/Cargo.lock index 12ba50b..f4731fc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -714,7 +714,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "oxker" -version = "0.3.2" +version = "0.3.3" dependencies = [ "anyhow", "bollard", diff --git a/Cargo.toml b/Cargo.toml index 1baf43e..e0055f6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oxker" -version = "0.3.2" +version = "0.3.3" edition = "2021" authors = ["Jack Wills "] description = "A simple tui to view & control docker containers" diff --git a/src/app_data/container_state.rs b/src/app_data/container_state.rs index 607baa8..08f0785 100644 --- a/src/app_data/container_state.rs +++ b/src/app_data/container_state.rs @@ -248,7 +248,7 @@ impl PartialEq for CpuStats { impl PartialOrd for CpuStats { fn partial_cmp(&self, other: &Self) -> Option { - Some(self.cmp(other)) + Some(self.cmp(other)) } } @@ -291,7 +291,7 @@ impl PartialEq for ByteStats { impl PartialOrd for ByteStats { fn partial_cmp(&self, other: &Self) -> Option { - Some(self.cmp(other)) + Some(self.cmp(other)) } } diff --git a/src/app_data/mod.rs b/src/app_data/mod.rs index 903090e..6a851a9 100644 --- a/src/app_data/mod.rs +++ b/src/app_data/mod.rs @@ -569,7 +569,10 @@ impl AppData { .map_or(false, |i| i.starts_with(ENTRY_POINT)); let state = State::from(i.state.as_ref().map_or("dead", |z| z)); - let status = i.status.as_ref().map_or(String::new(), std::clone::Clone::clone); + let status = i + .status + .as_ref() + .map_or(String::new(), std::clone::Clone::clone); let image = i .image diff --git a/src/main.rs b/src/main.rs index 6b15751..ef3e279 100644 --- a/src/main.rs +++ b/src/main.rs @@ -69,12 +69,9 @@ fn check_if_containerised() -> bool { /// Read the optional docker_host path, the cli args take priority over the DOCKER_HOST env fn read_docker_host(args: &CliArgs) -> Option { - args.host.as_ref().map_or_else( - || { - std::env::var(DOCKER_HOST).ok() - }, - |x| Some(x.to_string()), - ) + args.host + .as_ref() + .map_or_else(|| std::env::var(DOCKER_HOST).ok(), |x| Some(x.to_string())) } /// Create docker daemon handler, and only spawn up the docker data handler if a ping returns non-error