aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Jankowski <Daniel.Jankowski@rub.de>2023-11-07 16:51:52 +0100
committerGitHub <noreply@github.com>2023-11-07 16:51:52 +0100
commit0256553be635d60104961a28583a5b01ae3958a0 (patch)
tree127741702b52ec26b0e164992f368a3aecc164b1
parentchore: refactor border rendering (diff)
downloadsl0pstatus-0256553be635d60104961a28583a5b01ae3958a0.tar.gz
sl0pstatus-0256553be635d60104961a28583a5b01ae3958a0.tar.xz
sl0pstatus-0256553be635d60104961a28583a5b01ae3958a0.zip
feat: add widget for running arbitrary commands (#16)
* chore: update zellij-tile to 0.39.0 with git version * chore: update flake deps * feat: rework render + add stub command widget * feat: implement command handling * chore: refactoring command widget * chore: add command description to README * chore: remove debugging output * fix: recreate lock file after interval Due to a bug when attaching sessions, the lock file needs to be recreated for another try to run the command, when permissions were granted * fix: pause on detach and without permissions * chore: clean up previous unneeded changes * chore: clean up imports * chore: fix clippy issues * chore: remove debug output * fix: strip newline only when it exists * feat: update to zellij-tile 0.39.0
-rw-r--r--Cargo.lock1180
-rw-r--r--Cargo.toml3
-rw-r--r--README.md26
-rw-r--r--flake.lock107
-rw-r--r--plugin-dev-workspace.kdl14
-rw-r--r--src/config.rs7
-rw-r--r--src/main.rs88
-rw-r--r--src/render.rs21
-rw-r--r--src/widgets/command.rs208
-rw-r--r--src/widgets/datetime.rs2
-rw-r--r--src/widgets/mod.rs1
-rw-r--r--src/widgets/mode.rs2
-rw-r--r--src/widgets/session.rs2
-rw-r--r--src/widgets/swap_layout.rs2
-rw-r--r--src/widgets/tabs.rs2
-rw-r--r--src/widgets/widget.rs2
16 files changed, 1403 insertions, 264 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 7b10085..9b8181a 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -18,6 +18,60 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
[[package]]
+name = "aead"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "aes"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561"
+dependencies = [
+ "aes-soft",
+ "aesni",
+ "cipher",
+]
+
+[[package]]
+name = "aes-gcm"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5278b5fabbb9bd46e24aa69b2fdea62c99088e0a950a9be40e3e0101298f88da"
+dependencies = [
+ "aead",
+ "aes",
+ "cipher",
+ "ctr",
+ "ghash",
+ "subtle",
+]
+
+[[package]]
+name = "aes-soft"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072"
+dependencies = [
+ "cipher",
+ "opaque-debug",
+]
+
+[[package]]
+name = "aesni"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce"
+dependencies = [
+ "cipher",
+ "opaque-debug",
+]
+
+[[package]]
name = "aho-corasick"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -85,11 +139,11 @@ version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4b0c4a4f319e45986f347ee47fef8bf5e81c9abc3f6f58dc2391439f30df65f0"
dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
"async-task",
"concurrent-queue",
"fastrand 2.0.1",
- "futures-lite",
+ "futures-lite 1.13.0",
"slab",
]
@@ -101,10 +155,10 @@ checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776"
dependencies = [
"async-channel",
"async-executor",
- "async-io",
- "async-lock",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
"blocking",
- "futures-lite",
+ "futures-lite 1.13.0",
"once_cell",
]
@@ -114,21 +168,41 @@ version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
"autocfg",
"cfg-if",
"concurrent-queue",
- "futures-lite",
+ "futures-lite 1.13.0",
"log",
"parking",
- "polling",
- "rustix 0.37.25",
+ "polling 2.8.0",
+ "rustix 0.37.27",
"slab",
"socket2",
"waker-fn",
]
[[package]]
+name = "async-io"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41ed9d5715c2d329bf1b4da8d60455b99b187f27ba726df2883799af9af60997"
+dependencies = [
+ "async-lock 3.0.0",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-io",
+ "futures-lite 2.0.1",
+ "parking",
+ "polling 3.3.0",
+ "rustix 0.38.21",
+ "slab",
+ "tracing",
+ "waker-fn",
+ "windows-sys",
+]
+
+[[package]]
name = "async-lock"
version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -138,35 +212,46 @@ dependencies = [
]
[[package]]
+name = "async-lock"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45e900cdcd39bb94a14487d3f7ef92ca222162e6c7c3fe7cb3550ea75fb486ed"
+dependencies = [
+ "event-listener 3.0.1",
+ "event-listener-strategy",
+ "pin-project-lite",
+]
+
+[[package]]
name = "async-process"
version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
dependencies = [
- "async-io",
- "async-lock",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
"async-signal",
"blocking",
"cfg-if",
- "event-listener 3.0.0",
- "futures-lite",
- "rustix 0.38.19",
+ "event-listener 3.0.1",
+ "futures-lite 1.13.0",
+ "rustix 0.38.21",
"windows-sys",
]
[[package]]
name = "async-signal"
-version = "0.2.4"
+version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2a5415b7abcdc9cd7d63d6badba5288b2ca017e3fbd4173b8f405449f1a2399"
+checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
dependencies = [
- "async-io",
- "async-lock",
+ "async-io 2.2.0",
+ "async-lock 2.8.0",
"atomic-waker",
"cfg-if",
"futures-core",
"futures-io",
- "rustix 0.38.19",
+ "rustix 0.38.21",
"signal-hook-registry",
"slab",
"windows-sys",
@@ -180,14 +265,14 @@ checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d"
dependencies = [
"async-channel",
"async-global-executor",
- "async-io",
- "async-lock",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
"async-process",
"crossbeam-utils",
"futures-channel",
"futures-core",
"futures-io",
- "futures-lite",
+ "futures-lite 1.13.0",
"gloo-timers",
"kv-log-macro",
"log",
@@ -206,6 +291,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1"
[[package]]
+name = "async-trait"
+version = "0.1.74"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
name = "atomic-waker"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -253,10 +349,22 @@ dependencies = [
]
[[package]]
+name = "base-x"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270"
+
+[[package]]
name = "base64"
-version = "0.21.4"
+version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
+checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+
+[[package]]
+name = "base64"
+version = "0.21.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
[[package]]
name = "bitflags"
@@ -295,11 +403,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c36a4d0d48574b3dd360b4b7d95cc651d2b6557b6402848a27d4b228a473e2a"
dependencies = [
"async-channel",
- "async-lock",
+ "async-lock 2.8.0",
"async-task",
"fastrand 2.0.1",
"futures-io",
- "futures-lite",
+ "futures-lite 1.13.0",
"piper",
"tracing",
]
@@ -318,6 +426,12 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "bytes"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
+
+[[package]]
+name = "bytes"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
@@ -353,9 +467,9 @@ dependencies = [
[[package]]
name = "chrono-tz"
-version = "0.8.3"
+version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1369bc6b9e9a7dfdae2055f6ec151fe9c554a9d23d357c0237cee2e25eaabb7"
+checksum = "e23185c0e21df6ed832a12e2bda87c7d1def6842881fb634a8511ced741b0d76"
dependencies = [
"chrono",
"chrono-tz-build",
@@ -364,9 +478,9 @@ dependencies = [
[[package]]
name = "chrono-tz-build"
-version = "0.2.0"
+version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2f5ebdc942f57ed96d560a6d1a459bae5851102a25d5bf89dc04ae453e31ecf"
+checksum = "433e39f13c9a060046954e0592a8d0a4bcb1040125cbf91cb8ee58964cfb350f"
dependencies = [
"parse-zoneinfo",
"phf 0.11.2",
@@ -374,6 +488,15 @@ dependencies = [
]
[[package]]
+name = "cipher"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
name = "clap"
version = "3.2.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -439,6 +562,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54261aba646433cb567ec89844be4c4825ca92a4f8afba52fc4dd88436e31bbd"
[[package]]
+name = "common-path"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2382f75942f4b3be3690fe4f86365e9c853c1587d6ee58212cebf6e2a9ccd101"
+
+[[package]]
name = "concurrent-queue"
version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -448,6 +577,29 @@ dependencies = [
]
[[package]]
+name = "const_fn"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935"
+
+[[package]]
+name = "cookie"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03a5d7b21829bc7b4bf4754a978a241ae54ea55a40f92bb20216e54096f4b951"
+dependencies = [
+ "aes-gcm",
+ "base64 0.13.1",
+ "hkdf",
+ "hmac",
+ "percent-encoding",
+ "rand 0.8.5",
+ "sha2 0.9.9",
+ "time",
+ "version_check",
+]
+
+[[package]]
name = "core-foundation-sys"
version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -455,14 +607,20 @@ checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
[[package]]
name = "cpufeatures"
-version = "0.2.9"
+version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
dependencies = [
"libc",
]
[[package]]
+name = "cpuid-bool"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba"
+
+[[package]]
name = "crossbeam"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -540,6 +698,16 @@ dependencies = [
]
[[package]]
+name = "crypto-mac"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bff07008ec701e8028e2ceb8f83f0e4274ee62bd2dbdc4fefff2e9a91824081a"
+dependencies = [
+ "generic-array",
+ "subtle",
+]
+
+[[package]]
name = "csscolorparser"
version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -550,6 +718,46 @@ dependencies = [
]
[[package]]
+name = "ctr"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f"
+dependencies = [
+ "cipher",
+]
+
+[[package]]
+name = "curl"
+version = "0.4.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22"
+dependencies = [
+ "curl-sys",
+ "libc",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "socket2",
+ "winapi",
+]
+
+[[package]]
+name = "curl-sys"
+version = "0.4.68+curl-8.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4a0d18d88360e374b16b2273c832b5e57258ffc1d4aa4f96b108e0738d5752f"
+dependencies = [
+ "cc",
+ "libc",
+ "libnghttp2-sys",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+ "vcpkg",
+ "windows-sys",
+]
+
+[[package]]
name = "deltae"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -592,13 +800,12 @@ dependencies = [
]
[[package]]
-name = "directories-next"
-version = "2.0.0"
+name = "directories"
+version = "5.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc"
+checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35"
dependencies = [
- "cfg-if",
- "dirs-sys-next",
+ "dirs-sys 0.4.1",
]
[[package]]
@@ -643,15 +850,10 @@ dependencies = [
]
[[package]]
-name = "dirs-sys-next"
-version = "0.1.2"
+name = "discard"
+version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
-dependencies = [
- "libc",
- "redox_users",
- "winapi",
-]
+checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0"
[[package]]
name = "either"
@@ -667,9 +869,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
name = "errno"
-version = "0.3.5"
+version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860"
+checksum = "7c18ee0ed65a5f1f81cac6b1d213b69c35fa47d4252ad41f1486dbd8226fe36e"
dependencies = [
"libc",
"windows-sys",
@@ -683,9 +885,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
[[package]]
name = "event-listener"
-version = "3.0.0"
+version = "3.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29e56284f00d94c1bc7fd3c77027b4623c88c1f53d8d2394c6199f2921dea325"
+checksum = "01cec0252c2afff729ee6f00e903d479fba81784c8e2bd77447673471fdfaea1"
dependencies = [
"concurrent-queue",
"parking",
@@ -693,6 +895,16 @@ dependencies = [
]
[[package]]
+name = "event-listener-strategy"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d96b852f1345da36d551b9473fa1e2b1eb5c5195585c6c018118bc92a8d91160"
+dependencies = [
+ "event-listener 3.0.1",
+ "pin-project-lite",
+]
+
+[[package]]
name = "fastrand"
version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -752,6 +964,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
[[package]]
+name = "flume"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bebadab126f8120d410b677ed95eee4ba6eb7c6dd8e34a5ec88a08050e26132"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+ "spinning_top",
+]
+
+[[package]]
name = "fnv"
version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -776,25 +999,52 @@ dependencies = [
]
[[package]]
+name = "futures"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
name = "futures-channel"
-version = "0.3.28"
+version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
dependencies = [
"futures-core",
+ "futures-sink",
]
[[package]]
name = "futures-core"
-version = "0.3.28"
+version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
[[package]]
name = "futures-io"
-version = "0.3.28"
+version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
[[package]]
name = "futures-lite"
@@ -812,6 +1062,57 @@ dependencies = [
]
[[package]]
+name = "futures-lite"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3831c2651acb5177cbd83943f3d9c8912c5ad03c76afcc0e9511ba568ec5ebb"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "futures-macro"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
+
+[[package]]
+name = "futures-task"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
+
+[[package]]
+name = "futures-util"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
name = "generic-array"
version = "0.14.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -823,13 +1124,34 @@ dependencies = [
[[package]]
name = "getrandom"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi 0.9.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "getrandom"
version = "0.2.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
dependencies = [
"cfg-if",
"libc",
- "wasi",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "ghash"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97304e4cd182c3846f7575ced3890c53012ce534ad9114046b0a9e00bb30a375"
+dependencies = [
+ "opaque-debug",
+ "polyval",
]
[[package]]
@@ -858,9 +1180,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"
@@ -899,6 +1221,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
[[package]]
+name = "hkdf"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51ab2f639c231793c5f6114bdb9bbe50a7dbbfcd7c7c6bd8475dec2d991e964f"
+dependencies = [
+ "digest 0.9.0",
+ "hmac",
+]
+
+[[package]]
+name = "hmac"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15"
+dependencies = [
+ "crypto-mac",
+ "digest 0.9.0",
+]
+
+[[package]]
name = "home"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -908,6 +1250,53 @@ dependencies = [
]
[[package]]
+name = "http"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+dependencies = [
+ "bytes 1.5.0",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http-client"
+version = "6.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1947510dc91e2bf586ea5ffb412caad7673264e14bb39fb9078da114a94ce1a5"
+dependencies = [
+ "async-std",
+ "async-trait",
+ "cfg-if",
+ "http-types",
+ "isahc",
+ "log",
+]
+
+[[package]]
+name = "http-types"
+version = "2.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e9b187a72d63adbfba487f48095306ac823049cb504ee195541e91c7775f5ad"
+dependencies = [
+ "anyhow",
+ "async-channel",
+ "async-std",
+ "base64 0.13.1",
+ "cookie",
+ "futures-lite 1.13.0",
+ "infer",
+ "pin-project-lite",
+ "rand 0.7.3",
+ "serde",
+ "serde_json",
+ "serde_qs",
+ "serde_urlencoded",
+ "url",
+]
+
+[[package]]
name = "humantime"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -977,15 +1366,21 @@ dependencies = [
[[package]]
name = "indexmap"
-version = "2.0.2"
+version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
dependencies = [
"equivalent",
- "hashbrown 0.14.1",
+ "hashbrown 0.14.2",
]
[[package]]
+name = "infer"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac"
+
+[[package]]
name = "inotify"
version = "0.9.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1027,7 +1422,7 @@ dependencies = [
"intmap",
"libc",
"once_cell",
- "rustc_version",
+ "rustc_version 0.4.0",
"spinning",
"thiserror",
"to_method",
@@ -1058,7 +1453,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
dependencies = [
"hermit-abi 0.3.3",
- "rustix 0.38.19",
+ "rustix 0.38.21",
"windows-sys",
]
@@ -1069,6 +1464,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "616cde7c720bb2bb5824a224687d8f77bfd38922027f01d825cd7453be5099fb"
[[package]]
+name = "isahc"
+version = "0.9.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2948a0ce43e2c2ef11d7edf6816508998d99e13badd1150be0914205df9388a"
+dependencies = [
+ "bytes 0.5.6",
+ "crossbeam-utils",
+ "curl",
+ "curl-sys",
+ "flume",
+ "futures-lite 1.13.0",
+ "http",
+ "log",
+ "once_cell",
+ "slab",
+ "sluice",
+ "tracing",
+ "tracing-futures",
+ "url",
+ "waker-fn",
+]
+
+[[package]]
name = "itertools"
version = "0.10.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1085,9 +1503,9 @@ checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
[[package]]
name = "js-sys"
-version = "0.3.64"
+version = "0.3.65"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8"
dependencies = [
"wasm-bindgen",
]
@@ -1146,9 +1564,42 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
-version = "0.2.149"
+version = "0.2.150"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
+
+[[package]]
+name = "libnghttp2-sys"
+version = "0.1.8+1.55.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fae956c192dadcdb5dace96db71fa0b827333cce7c7b38dc71446f024d8a340"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "libredox"
+version = "0.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+dependencies = [
+ "bitflags 2.4.1",
+ "libc",
+ "redox_syscall 0.4.1",
+]
+
+[[package]]
+name = "libz-sys"
+version = "1.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
+checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
[[package]]
name = "linked-hash-map"
@@ -1279,7 +1730,23 @@ checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.38",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "mime"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+[[package]]
+name = "mime_guess"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
+dependencies = [
+ "mime",
+ "unicase",
]
[[package]]
@@ -1299,13 +1766,13 @@ dependencies = [
[[package]]
name = "mio"
-version = "0.8.8"
+version = "0.8.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
dependencies = [
"libc",
"log",
- "wasi",
+ "wasi 0.11.0+wasi-snapshot-preview1",
"windows-sys",
]
@@ -1434,6 +1901,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "openssl-src"
+version = "300.1.6+3.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439fac53e092cd7442a3660c85dde4643ab3b5bd39040912388dcdabf6b88085"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.95"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "40a4130519a360279579c2053038317e40eff64d13fd3f004f9e1b72b8a6aaf9"
+dependencies = [
+ "cc",
+ "libc",
+ "openssl-src",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
name = "option-ext"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1521,9 +2016,9 @@ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
[[package]]
name = "pest"
-version = "2.7.4"
+version = "2.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c022f1e7b65d6a24c0dbbd5fb344c66881bc01f3e5ae74a1c8100f2f985d98a4"
+checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5"
dependencies = [
"memchr",
"thiserror",
@@ -1532,9 +2027,9 @@ dependencies = [
[[package]]
name = "pest_derive"
-version = "2.7.4"
+version = "2.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35513f630d46400a977c4cb58f78e1bfbe01434316e60c37d27b9ad6139c66d8"
+checksum = "81d78524685f5ef2a3b3bd1cafbc9fcabb036253d9b1463e726a91cd16e2dfc2"
dependencies = [
"pest",
"pest_generator",
@@ -1542,22 +2037,22 @@ dependencies = [
[[package]]
name = "pest_generator"
-version = "2.7.4"
+version = "2.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc9fc1b9e7057baba189b5c626e2d6f40681ae5b6eb064dc7c7834101ec8123a"
+checksum = "68bd1206e71118b5356dae5ddc61c8b11e28b09ef6a31acbd15ea48a28e0c227"
dependencies = [
"pest",
"pest_meta",
"proc-macro2",
"quote",
- "syn 2.0.38",
+ "syn 2.0.39",
]
[[package]]
name = "pest_meta"
-version = "2.7.4"
+version = "2.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1df74e9e7ec4053ceb980e7c0c8bd3594e977fde1af91daba9c928e8e8c6708d"
+checksum = "7c747191d4ad9e4a4ab9c8798f1e82a39affe7ef9648390b7e5548d18e099de6"
dependencies = [
"once_cell",
"pest",
@@ -1571,7 +2066,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
dependencies = [
"fixedbitset",
- "indexmap 2.0.2",
+ "indexmap 2.1.0",
]
[[package]]
@@ -1610,7 +2105,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
dependencies = [
"phf_shared 0.11.2",
- "rand",
+ "rand 0.8.5",
]
[[package]]
@@ -1623,7 +2118,7 @@ dependencies = [
"phf_shared 0.11.2",
"proc-macro2",
"quote",
- "syn 2.0.38",
+ "syn 2.0.39",
]
[[package]]
@@ -1645,6 +2140,26 @@ dependencies = [
]
[[package]]
+name = "pin-project"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
name = "pin-project-lite"
version = "0.2.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1668,6 +2183,12 @@ dependencies = [
]
[[package]]
+name = "pkg-config"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+
+[[package]]
name = "polling"
version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1684,6 +2205,37 @@ dependencies = [
]
[[package]]
+name = "polling"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e53b6af1f60f36f8c2ac2aad5459d75a5a9b4be1e8cdd40264f315d78193e531"
+dependencies = [
+ "cfg-if",
+ "concurrent-queue",
+ "pin-project-lite",
+ "rustix 0.38.21",
+ "tracing",
+ "windows-sys",
+]
+
+[[package]]
+name = "polyval"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eebcc4aa140b9abd2bc40d9c3f7ccec842679cd79045ac3a7ac698c1a064b7cd"
+dependencies = [
+ "cpuid-bool",
+ "opaque-debug",
+ "universal-hash",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
name = "prettyplease"
version = "0.1.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1718,6 +2270,12 @@ dependencies = [
]
[[package]]
+name = "proc-macro-hack"
+version = "0.5.20+deprecated"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
+
+[[package]]
name = "proc-macro2"
version = "1.0.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1732,7 +2290,7 @@ version = "0.11.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd"
dependencies = [
- "bytes",
+ "bytes 1.5.0",
"prost-derive",
]
@@ -1742,7 +2300,7 @@ version = "0.11.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270"
dependencies = [
- "bytes",
+ "bytes 1.5.0",
"heck 0.4.1",
"itertools",
"lazy_static",
@@ -1791,11 +2349,55 @@ dependencies = [
[[package]]
name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom 0.1.16",
+ "libc",
+ "rand_chacha 0.2.2",
+ "rand_core 0.5.1",
+ "rand_hc",
+]
+
+[[package]]
+name = "rand"
version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
dependencies = [
- "rand_core",
+ "libc",
+ "rand_chacha 0.3.1",
+ "rand_core 0.6.4",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.5.1",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.6.4",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom 0.1.16",
]
[[package]]
@@ -1803,14 +2405,17 @@ name = "rand_core"
version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom 0.2.10",
+]
[[package]]
-name = "redox_syscall"
-version = "0.2.16"
+name = "rand_hc"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
dependencies = [
- "bitflags 1.3.2",
+ "rand_core 0.5.1",
]
[[package]]
@@ -1833,12 +2438,12 @@ dependencies = [
[[package]]
name = "redox_users"
-version = "0.4.3"
+version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
dependencies = [
- "getrandom",
- "redox_syscall 0.2.16",
+ "getrandom 0.2.10",
+ "libredox",
"thiserror",
]
@@ -1901,6 +2506,15 @@ checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
[[package]]
name = "rustc_version"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+dependencies = [
+ "semver 0.9.0",
+]
+
+[[package]]
+name = "rustc_version"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
@@ -1910,9 +2524,9 @@ dependencies = [
[[package]]
name = "rustix"
-version = "0.37.25"
+version = "0.37.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4eb579851244c2c03e7c24f501c3432bed80b8f720af1d6e5b0e0f01555a035"
+checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
dependencies = [
"bitflags 1.3.2",
"errno",
@@ -1924,9 +2538,9 @@ dependencies = [
[[package]]
name = "rustix"
-version = "0.38.19"
+version = "0.38.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "745ecfa778e66b2b63c88a61cb36e0eea109e803b0b86bf9879fbc77c70e86ed"
+checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3"
dependencies = [
"bitflags 2.4.1",
"errno",
@@ -1951,6 +2565,15 @@ dependencies = [
]
[[package]]
+name = "schannel"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
+dependencies = [
+ "windows-sys",
+]
+
+[[package]]
name = "scopeguard"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1958,11 +2581,20 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
[[package]]
name = "semver"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+dependencies = [
+ "semver-parser 0.7.0",
+]
+
+[[package]]
+name = "semver"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6"
dependencies = [
- "semver-parser",
+ "semver-parser 0.10.2",
]
[[package]]
@@ -1973,6 +2605,12 @@ checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
[[package]]
name = "semver-parser"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+
+[[package]]
+name = "semver-parser"
version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7"
@@ -1982,9 +2620,9 @@ dependencies = [
[[package]]
name = "serde"
-version = "1.0.189"
+version = "1.0.192"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537"
+checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001"
dependencies = [
"serde_derive",
]
@@ -2001,20 +2639,20 @@ dependencies = [
[[package]]
name = "serde_derive"
-version = "1.0.189"
+version = "1.0.192"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5"
+checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.38",
+ "syn 2.0.39",
]
[[package]]
name = "serde_json"
-version = "1.0.107"
+version = "1.0.108"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
+checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
dependencies = [
"itoa",
"ryu",
@@ -2022,6 +2660,29 @@ dependencies = [
]
[[package]]
+name = "serde_qs"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7715380eec75f029a4ef7de39a9200e0a63823176b759d055b613f5a87df6a6"
+dependencies = [
+ "percent-encoding",
+ "serde",
+ "thiserror",
+]
+
+[[package]]
+name = "serde_urlencoded"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+dependencies = [
+ "form_urlencoded",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
name = "serde_yaml"
version = "0.8.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2034,6 +2695,21 @@ dependencies = [
]
[[package]]
+name = "sha1"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770"
+dependencies = [
+ "sha1_smol",
+]
+
+[[package]]
+name = "sha1_smol"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"
+
+[[package]]
name = "sha2"
version = "0.9.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2111,6 +2787,17 @@ dependencies = [
]
[[package]]
+name = "sluice"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5"
+dependencies = [
+ "async-channel",
+ "futures-core",
+ "futures-io",
+]
+
+[[package]]
name = "smallvec"
version = "1.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2124,9 +2811,9 @@ checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"
[[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",
@@ -2142,6 +2829,73 @@ dependencies = [
]
[[package]]
+name = "spinning_top"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b9eb1a2f4c41445a3a0ff9abc5221c5fcd28e1f13cd7c0397706f9ac938ddb0"
+dependencies = [
+ "lock_api",
+]
+
+[[package]]
+name = "standback"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "stdweb"
+version = "0.4.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5"
+dependencies = [
+ "discard",
+ "rustc_version 0.2.3",
+ "stdweb-derive",
+ "stdweb-internal-macros",
+ "stdweb-internal-runtime",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "stdweb-derive"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "serde",
+ "serde_derive",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "stdweb-internal-macros"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11"
+dependencies = [
+ "base-x",
+ "proc-macro2",
+ "quote",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "sha1",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "stdweb-internal-runtime"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"
+
+[[package]]
name = "strip-ansi-escapes"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2184,6 +2938,12 @@ dependencies = [
]
[[package]]
+name = "subtle"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+
+[[package]]
name = "supports-color"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2212,6 +2972,27 @@ dependencies = [
]
[[package]]
+name = "surf"
+version = "2.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "718b1ae6b50351982dedff021db0def601677f2120938b070eadb10ba4038dd7"
+dependencies = [
+ "async-std",
+ "async-trait",
+ "cfg-if",
+ "futures-util",
+ "getrandom 0.2.10",
+ "http-client",
+ "http-types",
+ "log",
+ "mime_guess",
+ "once_cell",
+ "pin-project-lite",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
name = "syn"
version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2224,9 +3005,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "2.0.38"
+version = "2.0.39"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
+checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
dependencies = [
"proc-macro2",
"quote",
@@ -2235,14 +3016,14 @@ dependencies = [
[[package]]
name = "tempfile"
-version = "3.8.0"
+version = "3.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
+checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
dependencies = [
"cfg-if",
"fastrand 2.0.1",
- "redox_syscall 0.3.5",
- "rustix 0.38.19",
+ "redox_syscall 0.4.1",
+ "rustix 0.38.21",
"windows-sys",
]
@@ -2294,7 +3075,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9509a978a10fcbace4991deae486ae10885e0f4c2c465123e08c9714a90648fa"
dependencies = [
"anyhow",
- "base64",
+ "base64 0.21.5",
"bitflags 1.3.2",
"filedescriptor",
"finl_unicode",
@@ -2347,22 +3128,22 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
[[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",
- "syn 2.0.38",
+ "syn 2.0.39",
]
[[package]]
@@ -2376,6 +3157,44 @@ dependencies = [
]
[[package]]
+name = "time"
+version = "0.2.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4752a97f8eebd6854ff91f1c1824cd6160626ac4bd44287f7f4ea2035a02a242"
+dependencies = [
+ "const_fn",
+ "libc",
+ "standback",
+ "stdweb",
+ "time-macros",
+ "version_check",
+ "winapi",
+]
+
+[[package]]
+name = "time-macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1"
+dependencies = [
+ "proc-macro-hack",
+ "time-macros-impl",
+]
+
+[[package]]
+name = "time-macros-impl"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f"
+dependencies = [
+ "proc-macro-hack",
+ "proc-macro2",
+ "quote",
+ "standback",
+ "syn 1.0.109",
+]
+
+[[package]]
name = "tinyvec"
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2398,19 +3217,45 @@ checksum = "c7c4ceeeca15c8384bbc3e011dbd8fccb7f068a440b752b7d9b32ceb0ca0e2e8"
[[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 = [
+ "log",
"pin-project-lite",
+ "tracing-attributes",
"tracing-core",
]
[[package]]
+name = "tracing-attributes"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
+
+[[package]]
name = "tracing-core"
version = "0.1.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "tracing-futures"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
+dependencies = [
+ "pin-project",
+ "tracing",
+]
[[package]]
name = "typemap-ors"
@@ -2434,6 +3279,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
[[package]]
+name = "unicase"
+version = "2.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
name = "unicode-bidi"
version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2473,6 +3327,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
[[package]]
+name = "universal-hash"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05"
+dependencies = [
+ "generic-array",
+ "subtle",
+]
+
+[[package]]
name = "unsafe-any-ors"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2501,19 +3365,25 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
[[package]]
name = "uuid"
-version = "0.8.2"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
+checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc"
dependencies = [
- "getrandom",
+ "getrandom 0.2.10",
"serde",
]
[[package]]
name = "value-bag"
-version = "1.4.1"
+version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d92ccd67fb88503048c01b59152a04effd0782d035a83a6d256ce6085f08f4a3"
+checksum = "4a72e1902dde2bd6441347de2b70b7f5d59bf157c6c62f0c44572607a1d55bbe"
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
[[package]]
name = "version_check"
@@ -2579,15 +3449,21 @@ dependencies = [
[[package]]
name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "wasi"
version = "0.11.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.88"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce"
dependencies = [
"cfg-if",
"wasm-bindgen-macro",
@@ -2595,24 +3471,24 @@ dependencies = [
[[package]]
name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.88"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217"
dependencies = [
"bumpalo",
"log",
"once_cell",
"proc-macro2",
"quote",
- "syn 2.0.38",
+ "syn 2.0.39",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-futures"
-version = "0.4.37"
+version = "0.4.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
+checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02"
dependencies = [
"cfg-if",
"js-sys",
@@ -2622,9 +3498,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.88"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -2632,28 +3508,28 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.88"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.38",
+ "syn 2.0.39",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.88"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b"
[[package]]
name = "web-sys"
-version = "0.3.64"
+version = "0.3.65"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
+checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -2714,7 +3590,7 @@ dependencies = [
"either",
"home",
"once_cell",
- "rustix 0.38.19",
+ "rustix 0.38.21",
]
[[package]]
@@ -2834,9 +3710,9 @@ dependencies = [
[[package]]
name = "zellij-tile"
-version = "0.38.2"
+version = "0.39.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23245bbef7a6dd1c6e44a73b697fcd4b15eac5d0812dfee4b633ae425c8c1ba3"
+checksum = "eacfea6cb4aeae01ebecec27e5003daa51078a8812a402f462fb872dbeb150c4"
dependencies = [
"clap",
"serde",
@@ -2848,9 +3724,9 @@ dependencies = [
[[package]]
name = "zellij-utils"
-version = "0.38.2"
+version = "0.39.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2c255271eab3868f67bb0efa4d0af5bf0aa2ddbedd3b79a83fc258c1e57e15a"
+checksum = "d0f8bcd0ce51223b2124470e70bdbbaac17aa0281abcbb0defb2c41026e84f0e"
dependencies = [
"anyhow",
"async-channel",
@@ -2860,8 +3736,11 @@ dependencies = [
"clap_complete",
"colored",
"colorsys",
+ "common-path",
"crossbeam",
- "directories-next",
+ "directories",
+ "futures",
+ "humantime",
"include_dir",
"interprocess",
"kdl",
@@ -2873,6 +3752,7 @@ dependencies = [
"nix 0.23.2",
"notify-debouncer-full",
"once_cell",
+ "openssl-sys",
"percent-encoding",
"prost",
"prost-build",
@@ -2885,6 +3765,7 @@ dependencies = [
"strip-ansi-escapes 0.1.1",
"strum",
"strum_macros",
+ "surf",
"tempfile",
"termwiz",
"thiserror",
@@ -2904,5 +3785,6 @@ dependencies = [
"chrono-tz",
"regex",
"strip-ansi-escapes 0.2.0",
+ "uuid",
"zellij-tile",
]
diff --git a/Cargo.toml b/Cargo.toml
index 36b3456..1a10fa8 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -5,10 +5,11 @@ authors = ["Daniel Jankowski"]
edition = "2018"
[dependencies]
-zellij-tile = "0.38.0"
+zellij-tile = "0.39.0"
chrono = "0.4.0"
regex = "1.9.4"
strip-ansi-escapes = "0.2.0"
chrono-tz = "0.8.3"
anyhow = "1.0.75"
anstyle = "1.0.2"
+uuid = { version = "1.4.1", features = ["v4"] }
diff --git a/README.md b/README.md
index f3acff8..177007d 100644
--- a/README.md
+++ b/README.md
@@ -80,7 +80,7 @@ layout {
pane size=1 borderless=true {
plugin location="file:target/wasm32-wasi/debug/zjstatus.wasm" {
format_left "{mode} #[fg=#89B4FA,bold]{session} {tabs}"
- format_right "{datetime}"
+ format_right "{command_git_branch} {datetime}"
format_space ""
border_enabled "false"
@@ -96,6 +96,10 @@ layout {
tab_normal "#[fg=#6C7086] {name} "
tab_active "#[fg=#9399B2,bold,italic] {name} "
+ command_git_branch_command "git rev-parse --abbrev-ref HEAD"
+ command_git_branch_format "#[fg=blue] {stdout} "
+ command_git_branch_interval "10"
+
datetime "#[fg=#6C7086,bold] {format} "
datetime_format "%A, %d %b %Y %H:%M"
datetime_timezone "Europe/Berlin"
@@ -154,6 +158,26 @@ by ansi color codes, the color name can also be used. They refer to the configur
zjstatus contains the following widgets with their respective config.
+#### command
+
+**Handle** `{command_NAME}`
+
+This widget is able to run arbitary commands and prints the result. It behaves a little
+bit different in order to enable running multiple commands. Therefore the command need to
+have a name in form of e.g. `{command_pwd}` or `{command_git_branch}`. The following
+options can be provided per named command.
+
+```kdl
+# the command that should be executed
+command_NAME_command "pwd"
+
+# themeing and format of the command
+command_NAME_format "#[fg=blue, bg=black] {exit_code} {stdout} {stderr}"
+
+# interval in seconds, between two command runs
+command_NAME_interval "1"
+```
+
#### datetime
**Handle** `{datetime}`
diff --git a/flake.lock b/flake.lock
index 21fe26a..0fbfd28 100644
--- a/flake.lock
+++ b/flake.lock
@@ -2,19 +2,16 @@
"nodes": {
"crane": {
"inputs": {
- "flake-compat": "flake-compat",
- "flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
- ],
- "rust-overlay": "rust-overlay"
+ ]
},
"locked": {
- "lastModified": 1693787605,
- "narHash": "sha256-rwq5U8dy+a9JFny/73L0SJu1GfWwATMPMTp7D+mjHy8=",
+ "lastModified": 1699218802,
+ "narHash": "sha256-5l0W4Q7z7A4BCstaF5JuBqXOVrZ3Vqst5+hUnP7EdUc=",
"owner": "ipetkov",
"repo": "crane",
- "rev": "8b4f7a4dab2120cf41e7957a28a853f45016bd9d",
+ "rev": "2d6c2aaff5a05e443eb15efddc21f9c73720340c",
"type": "github"
},
"original": {
@@ -23,50 +20,16 @@
"type": "github"
}
},
- "flake-compat": {
- "flake": false,
- "locked": {
- "lastModified": 1673956053,
- "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
- "owner": "edolstra",
- "repo": "flake-compat",
- "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
- "type": "github"
- },
- "original": {
- "owner": "edolstra",
- "repo": "flake-compat",
- "type": "github"
- }
- },
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
- "lastModified": 1692799911,
- "narHash": "sha256-3eihraek4qL744EvQXsK1Ha6C3CR7nnT8X2qWap4RNk=",
- "owner": "numtide",
- "repo": "flake-utils",
- "rev": "f9e7cf818399d17d347f847525c5a5a8032e4e44",
- "type": "github"
- },
- "original": {
- "owner": "numtide",
- "repo": "flake-utils",
- "type": "github"
- }
- },
- "flake-utils_2": {
- "inputs": {
- "systems": "systems_2"
- },
- "locked": {
- "lastModified": 1692799911,
- "narHash": "sha256-3eihraek4qL744EvQXsK1Ha6C3CR7nnT8X2qWap4RNk=",
+ "lastModified": 1694529238,
+ "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
"owner": "numtide",
"repo": "flake-utils",
- "rev": "f9e7cf818399d17d347f847525c5a5a8032e4e44",
+ "rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
"type": "github"
},
"original": {
@@ -77,11 +40,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1694062546,
- "narHash": "sha256-PiGI4f2BGnZcedP6slLjCLGLRLXPa9+ogGGgVPfGxys=",
+ "lastModified": 1699245149,
+ "narHash": "sha256-QGK3RwlopxpuRSknp2/T3rGJewvg48+m05OQL9eNLFY=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "b200e0df08f80c32974a6108ce431d8a8a5e6547",
+ "rev": "4cf9f0f864a05407c78a85027c12b22e484411a6",
"type": "github"
},
"original": {
@@ -94,51 +57,26 @@
"root": {
"inputs": {
"crane": "crane",
- "flake-utils": "flake-utils_2",
+ "flake-utils": "flake-utils",
"nixpkgs": "nixpkgs",
- "rust-overlay": "rust-overlay_2"
+ "rust-overlay": "rust-overlay"
}
},
"rust-overlay": {
"inputs": {
"flake-utils": [
- "crane",
"flake-utils"
],
"nixpkgs": [
- "crane",
"nixpkgs"
]
},
"locked": {
- "lastModified": 1693707092,
- "narHash": "sha256-HR1EnynBSPqbt+04/yxxqsG1E3n6uXrOl7SPco/UnYo=",
+ "lastModified": 1699323235,
+ "narHash": "sha256-ZFRItRv0dDSzsfpqSjj9qWM/SA1kRrOk6R04qhBZuxM=",
"owner": "oxalica",
"repo": "rust-overlay",
- "rev": "98ccb73e6eefc481da6039ee57ad8818d1ca8d56",
- "type": "github"
- },
- "original": {
- "owner": "oxalica",
- "repo": "rust-overlay",
- "type": "github"
- }
- },
- "rust-overlay_2": {
- "inputs": {
- "flake-utils": [
- "flake-utils"
- ],
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1694225334,
- "narHash": "sha256-f3uOfcfmG53biFl6zHPHSFrBucLGQp0LpRYQJlozZSA=",
- "owner": "oxalica",
- "repo": "rust-overlay",
- "rev": "1b4fad9dccece45c25b9ebda607427d69a8f1eae",
+ "rev": "8a9d6f544c08ee898c7f3761cc9587be7565db5e",
"type": "github"
},
"original": {
@@ -161,21 +99,6 @@
"repo": "default",
"type": "github"
}
- },
- "systems_2": {
- "locked": {
- "lastModified": 1681028828,
- "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
- "owner": "nix-systems",
- "repo": "default",
- "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
- "type": "github"
- },
- "original": {
- "owner": "nix-systems",
- "repo": "default",
- "type": "github"
- }
}
},
"root": "root",
diff --git a/plugin-dev-workspace.kdl b/plugin-dev-workspace.kdl
index 4778de4..37a635d 100644
--- a/plugin-dev-workspace.kdl
+++ b/plugin-dev-workspace.kdl
@@ -5,7 +5,7 @@ layout {
pane size=2 borderless=true {
plugin location="file:target/wasm32-wasi/debug/zjstatus.wasm" {
- format_left "{mode} #[fg=#89B4FA,bg=#181825,bold]{session} {tabs}"
+ format_left "{mode} #[fg=#89B4FA,bg=#181825,bold]{session} {tabs} {command_1} {command_git_branch} {command_3}"
format_right "{datetime}"
format_space "#[bg=#181825]"
@@ -28,6 +28,18 @@ layout {
tab_active_sync "#[fg=#9399B2,bg=#181825,bold,italic] {index} {name} <> "
+ command_1_command "pwd"
+ command_1_format "#[fg=blue,bg=black] {exit_code} {stdout} "
+ command_1_interval "1"
+
+ command_git_branch_command "git rev-parse --abbrev-ref HEAD"
+ command_git_branch_format "#[fg=red,bg=black] {stdout} "
+ command_git_branch_interval "2"
+
+ command_3_command "echo -n 'no newline'"
+ command_3_format "#[fg=red,bg=black] {stdout} "
+ command_3_interval "10"
+
datetime "#[fg=#6C7086,bg=#181825,bold] {format} "
datetime_format "%A, %d %b %Y %H:%M"
datetime_timezone "Europe/Berlin"
diff --git a/src/config.rs b/src/config.rs
index 93f6437..886ae70 100644
--- a/src/config.rs
+++ b/src/config.rs
@@ -141,10 +141,9 @@ impl ModuleConfig {
continue;
}
- let mut wid_name = match_name.replace('{', "");
- wid_name = wid_name.replace('}', "");
+ let wid_name = match_name.trim_matches(|c| c == '{' || c == '}');
- let wid = widget_map.get(&wid_name);
+ let wid = widget_map.get(wid_name);
if wid.is_none() {
continue;
}
@@ -156,7 +155,7 @@ impl ModuleConfig {
}
let pos = pos.unwrap();
- let wid_res = strip_ansi_escapes::strip_str(wid.process(state.clone()));
+ let wid_res = strip_ansi_escapes::strip_str(wid.process(wid_name, state.clone()));
rendered_output = rendered_output.replace(match_name, &wid_res);
if click_pos < pos + offset || click_pos > pos + offset + wid_res.len() {
diff --git a/src/main.rs b/src/main.rs
index a2bac74..68f8926 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,11 +1,18 @@
use config::ModuleConfig;
use widgets::{
- datetime::DateTimeWidget, mode::ModeWidget, session::SessionWidget,
- swap_layout::SwapLayoutWidget, tabs::TabsWidget, widget::Widget,
+ command::{CommandResult, CommandWidget},
+ datetime::DateTimeWidget,
+ mode::ModeWidget,
+ session::SessionWidget,
+ swap_layout::SwapLayoutWidget,
+ tabs::TabsWidget,
+ widget::Widget,
};
use zellij_tile::prelude::*;
+use chrono::{DateTime, Local};
use std::{collections::BTreeMap, sync::Arc, usize};
+use uuid::Uuid;
mod border;
mod config;
@@ -19,14 +26,18 @@ struct State {
userspace_configuration: BTreeMap<String, String>,
module_config: config::ModuleConfig,
widget_map: BTreeMap<String, Arc<dyn Widget>>,
+ got_permissions: bool,
}
#[derive(Default, Debug, Clone)]
pub struct ZellijState {
pub cols: usize,
+ pub command_results: BTreeMap<String, CommandResult>,
pub mode: ModeInfo,
+ pub plugin_uuid: String,
pub tabs: Vec<TabInfo>,
pub sessions: Vec<SessionInfo>,
+ pub start_time: DateTime<Local>,
}
#[cfg(not(test))]
@@ -49,17 +60,23 @@ impl ZellijPlugin for State {
EventType::PermissionRequestResult,
EventType::TabUpdate,
EventType::SessionUpdate,
+ EventType::RunCommandResult,
]);
self.userspace_configuration = configuration.clone();
self.module_config = ModuleConfig::new(configuration.clone());
self.widget_map = register_widgets(configuration);
+ self.got_permissions = false;
+ let uid = Uuid::new_v4();
self.state = ZellijState {
cols: 0,
+ command_results: BTreeMap::new(),
mode: ModeInfo::default(),
+ plugin_uuid: uid.to_string(),
tabs: Vec::new(),
sessions: Vec::new(),
+ start_time: Local::now(),
};
}
@@ -67,6 +84,10 @@ impl ZellijPlugin for State {
let mut should_render = false;
match event {
Event::Mouse(mouse_info) => {
+ if !self.got_permissions {
+ return false;
+ }
+
self.module_config.handle_mouse_action(
self.state.clone(),
mouse_info,
@@ -74,10 +95,18 @@ impl ZellijPlugin for State {
);
}
Event::ModeUpdate(mode_info) => {
+ if !self.got_permissions {
+ return false;
+ }
+
self.state.mode = mode_info;
should_render = true;
}
Event::PaneUpdate(pane_info) => {
+ if !self.got_permissions {
+ return false;
+ }
+
if self.module_config.hide_frame_for_single_pane {
frames::hide_frames_on_single_pane(
self.state.tabs.clone(),
@@ -90,8 +119,40 @@ impl ZellijPlugin for State {
}
Event::PermissionRequestResult(_result) => {
set_selectable(false);
+ self.got_permissions = true;
}
- Event::SessionUpdate(session_info) => {
+ Event::RunCommandResult(exit_code, stdout, stderr, context) => {
+ if !self.got_permissions {
+ return false;
+ }
+
+ if let Some(name) = context.get("name") {
+ let stdout = match String::from_utf8(stdout) {
+ Ok(s) => s,
+ Err(_) => "".to_owned(),
+ };
+
+ let stderr = match String::from_utf8(stderr) {
+ Ok(s) => s,
+ Err(_) => "".to_owned(),
+ };
+
+ self.state.command_results.insert(
+ name.to_string(),
+ CommandResult {
+ exit_code,
+ stdout,
+ stderr,
+ context,
+ },
+ );
+ }
+ }
+ Event::SessionUpdate(session_info, _) => {
+ if !self.got_permissions {
+ return false;
+ }
+
if self.module_config.hide_frame_for_single_pane {
let current_session = session_info.iter().find(|s| s.is_current_session);
@@ -109,6 +170,10 @@ impl ZellijPlugin for State {
should_render = true;
}
Event::TabUpdate(tab_info) => {
+ if !self.got_permissions {
+ return false;
+ }
+
self.state.tabs = tab_info;
should_render = true;
}
@@ -118,6 +183,10 @@ impl ZellijPlugin for State {
}
fn render(&mut self, _rows: usize, cols: usize) {
+ if is_detached(self.state.clone()) || !self.got_permissions {
+ return;
+ }
+
self.state.cols = cols;
self.module_config
@@ -125,10 +194,23 @@ impl ZellijPlugin for State {
}
}
+fn is_detached(state: ZellijState) -> bool {
+ let current_session = match state.sessions.iter().find(|s| s.is_current_session) {
+ Some(s) => s,
+ None => return false,
+ };
+
+ current_session.connected_clients == 0
+}
+
fn register_widgets(configuration: BTreeMap<String, String>) -> BTreeMap<String, Arc<dyn Widget>> {
let mut widget_map = BTreeMap::<String, Arc<dyn Widget>>::new();
widget_map.insert(
+ "command".to_string(),
+ Arc::new(CommandWidget::new(configuration.clone())),
+ );
+ widget_map.insert(
"datetime".to_string(),
Arc::new(DateTimeWidget::new(configuration.clone())),
);
diff --git a/src/render.rs b/src/render.rs
index 976700e..0fd554e 100644
--- a/src/render.rs
+++ b/src/render.rs
@@ -1,6 +1,7 @@
use std::{collections::BTreeMap, sync::Arc};
use anstyle::{Ansi256Color, AnsiColor, Color, RgbColor, Style};
+use regex::Regex;
use zellij_tile::prelude::bail;
use crate::{widgets::widget::Widget, ZellijState};
@@ -87,18 +88,24 @@ impl FormattedPart {
) -> String {
let mut output = self.content.clone();
- for key in widgets.keys() {
- let token = format!("{{{key}}}");
- if !output.contains(token.as_str()) {
- continue;
+ let widgets_regex = Regex::new("(\\{[a-z_0-9]+\\})").unwrap();
+ for widget in widgets_regex.captures_iter(self.content.clone().as_str()) {
+ let match_name = widget.get(0).unwrap().as_str();
+ let mut widget_key = match_name.trim_matches(|c| c == '{' || c == '}');
+
+ if widget_key.starts_with("command_") {
+ widget_key = "command";
}
- let result = match widgets.get(key) {
- Some(widget) => widget.process(state.clone()),
+ let result = match widgets.get(widget_key) {
+ Some(widget) => widget.process(
+ match_name.trim_matches(|c| c == '{' || c == '}'),
+ state.clone(),
+ ),
None => "Use of uninitialized widget".to_string(),
};
- output = output.replace(token.as_str(), &result);
+ output = output.replace(match_name, &result);
}
self.format_string(output)
diff --git a/src/widgets/command.rs b/src/widgets/command.rs
new file mode 100644
index 0000000..42297da
--- /dev/null
+++ b/src/widgets/command.rs
@@ -0,0 +1,208 @@
+use std::{
+ collections::BTreeMap,
+ fs::{remove_file, File},
+ ops::Sub,
+ path::Path,
+};
+
+use chrono::{DateTime, Duration, Local};
+use regex::Regex;
+use zellij_tile::shim::run_command;
+
+use crate::render::FormattedPart;
+
+use super::widget::Widget;
+
+const TIMESTAMP_FORMAT: &str = "%s";
+
+#[derive(Clone, Debug)]
+struct CommandConfig {
+ command: String,
+ format: FormattedPart,
+ interval: i64,
+}
+
+#[derive(Clone, Debug)]
+pub struct CommandResult {
+ pub exit_code: Option<i32>,
+ pub stdout: String,
+ pub stderr: String,
+ pub context: BTreeMap<String, String>,
+}
+
+pub struct CommandWidget {
+ config: BTreeMap<String, CommandConfig>,
+}
+
+impl CommandWidget {
+ pub fn new(config: BTreeMap<String, String>) -> Self {
+ Self {
+ config: parse_config(config),
+ }
+ }
+}
+
+impl Widget for CommandWidget {
+ fn process(&self, name: &str, state: crate::ZellijState) -> String {
+ let command_config = match self.config.get(name) {
+ Some(cc) => cc,
+ None => {
+ return "".to_string();
+ }
+ };
+
+ run_command_if_needed(command_config.clone(), name, state.clone());
+
+ let command_result = match state.command_results.get(name) {
+ Some(cr) => cr,
+ None => {
+ return "".to_string();
+ }
+ };
+
+ let mut content = command_config.format.content.clone();
+
+ if content.contains("{exit_code}") {
+ content = content.replace(
+ "{exit_code}",
+ format!("{}", command_result.exit_code.unwrap_or(-1)).as_str(),
+ );
+ }
+
+ if content.contains("{stdout}") {
+ content = content.replace(
+ "{stdout}",
+ command_result
+ .stdout
+ .strip_suffix('\n')
+ .unwrap_or(&command_result.stdout),
+ );
+ }
+
+ if content.contains("{stderr}") {
+ content = content.replace(
+ "{stderr}",
+ command_result
+ .stderr
+ .strip_suffix('\n')
+ .unwrap_or(&command_result.stderr),
+ );
+ }
+
+ command_config.format.format_string(content)
+ }
+
+ fn process_click(&self, _state: crate::ZellijState, _pos: usize) {}
+}
+
+fn run_command_if_needed(command_config: CommandConfig, name: &str, state: crate::ZellijState) {
+ let ts = Local::now();
+ let last_run =
+ get_timestamp_from_event_or_default(name, state.clone(), command_config.interval);
+
+ if ts.timestamp() - last_run.timestamp() >= command_config.interval {
+ let mut context = BTreeMap::new();
+ context.insert("name".to_owned(), name.to_owned());
+ context.insert(
+ "timestamp".to_owned(),
+ ts.format(TIMESTAMP_FORMAT).to_string(),
+ );
+
+ let command = command_config.command.split(' ').collect::<Vec<&str>>();
+ run_command(&command, context);
+ }
+}
+
+fn parse_config(zj_conf: BTreeMap<String, String>) -> BTreeMap<String, CommandConfig> {
+ let mut keys: Vec<String> = zj_conf
+ .keys()
+ .cloned()
+ .filter(|k| k.starts_with("command_"))
+ .collect();
+ keys.sort();
+
+ let mut config: BTreeMap<String, CommandConfig> = BTreeMap::new();
+
+ let key_name_regex = Regex::new("_[a-zA-Z0-9]+$").unwrap();
+ for key in keys {
+ let command_name = key_name_regex.replace(&key, "").to_string();
+
+ let mut command_conf = CommandConfig {
+ command: "".to_owned(),
+ format: FormattedPart::default(),
+ interval: 1,
+ };
+
+ if let Some(existing_conf) = config.get(command_name.as_str()) {
+ command_conf = existing_conf.clone();
+ }
+
+ if key.ends_with("command") {
+ command_conf.command = zj_conf.get(&key).unwrap().to_string().clone();
+ }
+
+ if key.ends_with("format") {
+ command_conf.format =
+ FormattedPart::from_format_string(zj_conf.get(&key).unwrap().to_string().clone());
+ }
+
+ if key.ends_with("interval") {
+ command_conf.interval = zj_conf.get(&key).unwrap().parse::<i64>().unwrap_or(1);
+ }
+
+ config.insert(command_name, command_conf);
+ }
+
+ config
+}
+
+fn get_timestamp_from_event_or_default(
+ name: &str,
+ state: crate::ZellijState,
+ interval: i64,
+) -> DateTime<Local> {
+ let command_result = state.command_results.get(name);
+ if command_result.is_none() {
+ if lock(name, state.clone()) {
+ return Local::now();
+ }
+
+ return Sub::<Duration>::sub(Local::now(), Duration::days(1));
+ }
+ let command_result = command_result.unwrap();
+
+ let ts_context = command_result.context.get("timestamp");
+ if ts_context.is_none() {
+ return Sub::<Duration>::sub(Local::now(), Duration::days(1));
+ }
+ let ts_context = ts_context.unwrap();
+
+ if Local::now().timestamp() - state.start_time.timestamp() < interval {
+ release(name, state.clone());
+ }
+
+ match DateTime::parse_from_str(ts_context, TIMESTAMP_FORMAT) {
+ Ok(ts) => ts.into(),
+ Err(_) => Sub::<Duration>::sub(Local::now(), Duration::days(1)),
+ }
+}
+
+fn lock(name: &str, state: crate::ZellijState) -> bool {
+ let path = format!("/tmp/{}.{}.lock", state.plugin_uuid, name);
+
+ if !Path::new(&path).exists() {
+ let _ = File::create(path);
+
+ return false;
+ }
+
+ true
+}
+
+fn release(name: &str, state: crate::ZellijState) {
+ let path = format!("/tmp/{}.{}.lock", state.plugin_uuid, name);
+
+ if Path::new(&path).exists() {
+ let _ = remove_file(path);
+ }
+}
diff --git a/src/widgets/datetime.rs b/src/widgets/datetime.rs
index cc4c3ff..958b232 100644
--- a/src/widgets/datetime.rs
+++ b/src/widgets/datetime.rs
@@ -44,7 +44,7 @@ impl DateTimeWidget {
}
impl Widget for DateTimeWidget {
- fn process(&self, _state: crate::ZellijState) -> String {
+ fn process(&self, _name: &str ,_state: crate::ZellijState) -> String {
let mut output = self.color_format.content.clone();
if output.contains("{format}") {
let date = Local::now();
diff --git a/src/widgets/mod.rs b/src/widgets/mod.rs
index 4627feb..9fcd130 100644
--- a/src/widgets/mod.rs
+++ b/src/widgets/mod.rs
@@ -1,3 +1,4 @@
+pub mod command;
pub mod datetime;
pub mod mode;
pub mod swap_layout;
diff --git a/src/widgets/mode.rs b/src/widgets/mode.rs
index 9a235da..2d11c97 100644
--- a/src/widgets/mode.rs
+++ b/src/widgets/mode.rs
@@ -119,7 +119,7 @@ impl ModeWidget {
}
impl Widget for ModeWidget {
- fn process(&self, state: ZellijState) -> String {
+ fn process(&self, _name: &str, state: ZellijState) -> String {
let format = self.select_format(state.mode.mode);
let mut content = format.content.clone();
diff --git a/src/widgets/session.rs b/src/widgets/session.rs
index 90d7b0c..4c4ca1c 100644
--- a/src/widgets/session.rs
+++ b/src/widgets/session.rs
@@ -11,7 +11,7 @@ impl SessionWidget {
}
impl Widget for SessionWidget {
- fn process(&self, state: crate::ZellijState) -> String {
+ fn process(&self, _name: &str, state: crate::ZellijState) -> String {
match state.mode.session_name {
Some(name) => name,
None => "".to_string(),
diff --git a/src/widgets/swap_layout.rs b/src/widgets/swap_layout.rs
index ea900c0..9eee678 100644
--- a/src/widgets/swap_layout.rs
+++ b/src/widgets/swap_layout.rs
@@ -12,7 +12,7 @@ impl SwapLayoutWidget {
}
impl Widget for SwapLayoutWidget {
- fn process(&self, state: crate::ZellijState) -> String {
+ fn process(&self, _name: &str, state: crate::ZellijState) -> String {
let active_tab = state.tabs.iter().find(|t| t.active);
if active_tab.is_none() {
diff --git a/src/widgets/tabs.rs b/src/widgets/tabs.rs
index a5745ac..902fbd6 100644
--- a/src/widgets/tabs.rs
+++ b/src/widgets/tabs.rs
@@ -59,7 +59,7 @@ impl TabsWidget {
}
impl Widget for TabsWidget {
- fn process(&self, state: crate::ZellijState) -> String {
+ fn process(&self, _name: &str, state: crate::ZellijState) -> String {
let mut output = "".to_string();
for tab in state.tabs {
diff --git a/src/widgets/widget.rs b/src/widgets/widget.rs
index 303284c..48eeef6 100644
--- a/src/widgets/widget.rs
+++ b/src/widgets/widget.rs
@@ -1,6 +1,6 @@
use crate::ZellijState;
pub trait Widget {
- fn process(&self, state: ZellijState) -> String;
+ fn process(&self, name: &str, state: ZellijState) -> String;
fn process_click(&self, state: ZellijState, pos: usize);
}