Compare commits
16 Commits
02ece20af8
...
renovate/a
Author | SHA1 | Date | |
---|---|---|---|
5fe25039dc | |||
b25acd3ecb | |||
4e769b4bf5 | |||
25a6d671ea | |||
b41bae20e2 | |||
f792340160 | |||
cfd1976f8c | |||
05aecf26b2 | |||
7055d71898 | |||
cd26941b51 | |||
7789441121 | |||
e359567e7d | |||
dbe2d1fc7a
|
|||
aaba4ed411
|
|||
153edb10d4
|
|||
37df2dcc6d
|
170
Cargo.lock
generated
170
Cargo.lock
generated
@@ -68,9 +68,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "anyhow"
|
||||
version = "1.0.95"
|
||||
version = "1.0.98"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04"
|
||||
checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487"
|
||||
|
||||
[[package]]
|
||||
name = "async-stream"
|
||||
@@ -96,9 +96,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "async-trait"
|
||||
version = "0.1.85"
|
||||
version = "0.1.88"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056"
|
||||
checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -191,6 +191,12 @@ version = "2.7.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1be3f42a67d6d345ecd59f675f3f012d6974981560836e938c22b424b85ce1be"
|
||||
|
||||
[[package]]
|
||||
name = "bumpalo"
|
||||
version = "3.19.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43"
|
||||
|
||||
[[package]]
|
||||
name = "byteorder"
|
||||
version = "1.5.0"
|
||||
@@ -199,9 +205,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
|
||||
|
||||
[[package]]
|
||||
name = "bytes"
|
||||
version = "1.9.0"
|
||||
version = "1.10.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b"
|
||||
checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a"
|
||||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
@@ -220,9 +226,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
||||
|
||||
[[package]]
|
||||
name = "clap"
|
||||
version = "4.5.26"
|
||||
version = "4.5.36"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a8eb5e908ef3a6efbe1ed62520fb7287959888c88485abe072543190ecc66783"
|
||||
checksum = "2df961d8c8a0d08aa9945718ccf584145eee3f3aa06cddbeac12933781102e04"
|
||||
dependencies = [
|
||||
"clap_builder",
|
||||
"clap_derive",
|
||||
@@ -230,9 +236,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "clap_builder"
|
||||
version = "4.5.26"
|
||||
version = "4.5.36"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "96b01801b5fc6a0a232407abc821660c9c6d25a1cafc0d4f85f29fb8d9afc121"
|
||||
checksum = "132dbda40fb6753878316a489d5a1242a8ef2f0d9e47ba01c951ea8aa7d013a5"
|
||||
dependencies = [
|
||||
"anstream",
|
||||
"anstyle",
|
||||
@@ -242,9 +248,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "clap_derive"
|
||||
version = "4.5.24"
|
||||
version = "4.5.32"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c"
|
||||
checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7"
|
||||
dependencies = [
|
||||
"heck",
|
||||
"proc-macro2",
|
||||
@@ -351,7 +357,19 @@ checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"libc",
|
||||
"wasi",
|
||||
"wasi 0.11.0+wasi-snapshot-preview1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "getrandom"
|
||||
version = "0.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"libc",
|
||||
"wasi 0.13.3+wasi-0.2.2",
|
||||
"windows-targets",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -537,6 +555,16 @@ version = "1.0.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
|
||||
|
||||
[[package]]
|
||||
name = "js-sys"
|
||||
version = "0.3.77"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f"
|
||||
dependencies = [
|
||||
"once_cell",
|
||||
"wasm-bindgen",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "lazy_static"
|
||||
version = "1.5.0"
|
||||
@@ -599,7 +627,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"wasi",
|
||||
"wasi 0.11.0+wasi-snapshot-preview1",
|
||||
"windows-sys 0.52.0",
|
||||
]
|
||||
|
||||
@@ -721,9 +749,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "prost"
|
||||
version = "0.13.4"
|
||||
version = "0.13.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec"
|
||||
checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"prost-derive",
|
||||
@@ -731,9 +759,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "prost-derive"
|
||||
version = "0.13.4"
|
||||
version = "0.13.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "157c5a9d7ea5c2ed2d9fb8f495b64759f7816c7eaea54ba3978f0d63000162e3"
|
||||
checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"itertools",
|
||||
@@ -744,9 +772,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "prost-types"
|
||||
version = "0.13.4"
|
||||
version = "0.13.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cc2f1e56baa61e93533aebc21af4d2134b70f66275e0fcdf3cbe43d77ff7e8fc"
|
||||
checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16"
|
||||
dependencies = [
|
||||
"prost",
|
||||
]
|
||||
@@ -787,7 +815,7 @@ version = "0.6.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
||||
dependencies = [
|
||||
"getrandom",
|
||||
"getrandom 0.2.15",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -807,7 +835,7 @@ checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"cfg-if",
|
||||
"getrandom",
|
||||
"getrandom 0.2.15",
|
||||
"libc",
|
||||
"spin",
|
||||
"untrusted",
|
||||
@@ -919,18 +947,18 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.217"
|
||||
version = "1.0.218"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70"
|
||||
checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
version = "1.0.217"
|
||||
version = "1.0.218"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0"
|
||||
checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -1033,9 +1061,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "tokio"
|
||||
version = "1.43.0"
|
||||
version = "1.44.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e"
|
||||
checksum = "e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48"
|
||||
dependencies = [
|
||||
"backtrace",
|
||||
"bytes",
|
||||
@@ -1257,11 +1285,13 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
|
||||
|
||||
[[package]]
|
||||
name = "uuid"
|
||||
version = "1.11.1"
|
||||
version = "1.17.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b913a3b5fe84142e269d63cc62b64319ccaf89b748fc31fe025177f767a756c4"
|
||||
checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d"
|
||||
dependencies = [
|
||||
"getrandom",
|
||||
"getrandom 0.3.1",
|
||||
"js-sys",
|
||||
"wasm-bindgen",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1272,7 +1302,7 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
|
||||
|
||||
[[package]]
|
||||
name = "voidpin"
|
||||
version = "0.1.0"
|
||||
version = "0.0.1"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
@@ -1304,6 +1334,73 @@ version = "0.11.0+wasi-snapshot-preview1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
|
||||
|
||||
[[package]]
|
||||
name = "wasi"
|
||||
version = "0.13.3+wasi-0.2.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2"
|
||||
dependencies = [
|
||||
"wit-bindgen-rt",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen"
|
||||
version = "0.2.100"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"once_cell",
|
||||
"rustversion",
|
||||
"wasm-bindgen-macro",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-backend"
|
||||
version = "0.2.100"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6"
|
||||
dependencies = [
|
||||
"bumpalo",
|
||||
"log",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
"wasm-bindgen-shared",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-macro"
|
||||
version = "0.2.100"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407"
|
||||
dependencies = [
|
||||
"quote",
|
||||
"wasm-bindgen-macro-support",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-macro-support"
|
||||
version = "0.2.100"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
"wasm-bindgen-backend",
|
||||
"wasm-bindgen-shared",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-shared"
|
||||
version = "0.2.100"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d"
|
||||
dependencies = [
|
||||
"unicode-ident",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "winapi"
|
||||
version = "0.3.9"
|
||||
@@ -1408,6 +1505,15 @@ version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
|
||||
|
||||
[[package]]
|
||||
name = "wit-bindgen-rt"
|
||||
version = "0.33.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zerocopy"
|
||||
version = "0.7.35"
|
||||
|
18
README.md
18
README.md
@@ -4,9 +4,25 @@ Voidpin allows sending copy/paste commands across the wire. It is specifically i
|
||||
|
||||
Voidpin sends clipboard content to a local service, that then puts content in a local clipboard. It can also go the other way, but the primary intent is remote -> local.
|
||||
|
||||
## Demo
|
||||
|
||||

|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
# Local
|
||||
voidpin copy
|
||||
VOIDPIN_REMOTE=10.0.9.1:19191 voidpin remote copy
|
||||
|
||||
# Remote
|
||||
ip a # 10.0.9.1
|
||||
voidpin listen & # make voidpin listener run in background
|
||||
|
||||
# login to remote
|
||||
ssh remote@remote
|
||||
export VOIDPIN_REMOTE=http://10.0.9.1:7900
|
||||
echo "some content" | voidpin remote copy
|
||||
|
||||
# In a browser for example
|
||||
# Ctrl+v or Command+v
|
||||
```
|
||||
|
175
assets/demo.cast
Normal file
175
assets/demo.cast
Normal file
@@ -0,0 +1,175 @@
|
||||
{"version": 2, "width": 130, "height": 40, "timestamp": 1736839984, "env": {"SHELL": "/bin/zsh", "TERM": "xterm-256color"}}
|
||||
[0.479638, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
||||
[0.586074, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\r\n\u001b[38;2;255;153;102mvoidpin\u001b[0m \u001b[90mHEAD\u001b[1;32m(153edb1)\u001b[0m \u001b[38;2;255;153;102m \u001b[0mis \u001b[1;38;5;208m📦 v0.0.1\u001b[0m \u001b[1;31mrs \u001b[0mwith \u001b[1;34m🐃 v1.49.0 \u001b[0m\r\n\u001b[38;2;255;153;102m❯\u001b[0m \u001b[K"]
|
||||
[0.587071, "o", "\u001b[6 q"]
|
||||
[0.587964, "o", "\u001b[6 q"]
|
||||
[0.588147, "o", "\u001b[?2004h"]
|
||||
[3.167878, "o", "v"]
|
||||
[3.191237, "o", "\b\u001b[1m\u001b[31mv\u001b[0m\u001b[39m"]
|
||||
[3.232572, "o", "\b\u001b[1m\u001b[31mv\u001b[0m\u001b[39m\u001b[90moidpin listen\u001b[39m\u001b[13D"]
|
||||
[3.300942, "o", "\b\u001b[1m\u001b[31mv\u001b[1m\u001b[31mo\u001b[0m\u001b[39m"]
|
||||
[3.430551, "o", "\b\b\u001b[1m\u001b[31mv\u001b[1m\u001b[31mo\u001b[1m\u001b[31mi\u001b[0m\u001b[39m"]
|
||||
[3.544553, "o", "\b\u001b[1m\u001b[31mi\u001b[1m\u001b[31md\u001b[0m\u001b[39m"]
|
||||
[3.689365, "o", "\b\u001b[1m\u001b[31md\u001b[1m\u001b[31mp\u001b[0m\u001b[39m"]
|
||||
[3.797695, "o", "\b\u001b[1m\u001b[31mp\u001b[1m\u001b[31mi\u001b[0m\u001b[39m"]
|
||||
[3.97905, "o", "\b\u001b[1m\u001b[31mi\u001b[1m\u001b[31mn\u001b[0m\u001b[39m"]
|
||||
[3.980916, "o", "\b\b\b\b\b\b\b\u001b[0m\u001b[32mv\u001b[0m\u001b[32mo\u001b[0m\u001b[32mi\u001b[0m\u001b[32md\u001b[0m\u001b[32mp\u001b[0m\u001b[32mi\u001b[0m\u001b[32mn\u001b[39m"]
|
||||
[4.066146, "o", "\b\u001b[32mn\u001b[32m \u001b[39m"]
|
||||
[4.068196, "o", "\b\b\u001b[32mn\u001b[39m\u001b[39m "]
|
||||
[4.336382, "o", "\u001b[39mr\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \b\b\b\b\b"]
|
||||
[4.342211, "o", "\b\u001b[4mr\u001b[24m"]
|
||||
[4.422896, "o", "\b\u001b[4mr\u001b[4me\u001b[24m"]
|
||||
[4.452272, "o", "\b\u001b[4me\u001b[4mm\u001b[24m"]
|
||||
[4.45517, "o", "\b\b\b\u001b[24mr\u001b[24me\u001b[24mm"]
|
||||
[4.583628, "o", "o"]
|
||||
[4.666593, "o", "t"]
|
||||
[4.759127, "o", "e"]
|
||||
[4.900598, "o", " "]
|
||||
[5.746797, "o", "&"]
|
||||
[6.624085, "o", "\b \b"]
|
||||
[6.74323, "o", "\b"]
|
||||
[6.896869, "o", "\b \b"]
|
||||
[7.033699, "o", "\b \b"]
|
||||
[7.174094, "o", "\b \b"]
|
||||
[7.309328, "o", "\b \b"]
|
||||
[7.313831, "o", "\b\b\u001b[4mr\u001b[4me\u001b[24m"]
|
||||
[7.443394, "o", "\b\b\u001b[4mr\u001b[24m\u001b[24m \b"]
|
||||
[7.573529, "o", "\b\u001b[24m \b"]
|
||||
[7.600586, "o", "\u001b[90mlisten\u001b[39m\b\b\b\b\b\b"]
|
||||
[7.789065, "o", "\u001b[39ml"]
|
||||
[7.957613, "o", "\u001b[39mi"]
|
||||
[8.041393, "o", "\u001b[39ms"]
|
||||
[8.137227, "o", "\u001b[39mt"]
|
||||
[8.196626, "o", "\u001b[39me"]
|
||||
[8.263729, "o", "\u001b[39mn"]
|
||||
[8.401872, "o", " "]
|
||||
[8.5879, "o", "&"]
|
||||
[8.95472, "o", "\u001b[?1l\u001b>"]
|
||||
[8.954912, "o", "\u001b[?2004l"]
|
||||
[8.960125, "o", "\u001b[0 q"]
|
||||
[8.960423, "o", "\r\r\n"]
|
||||
[8.986315, "o", "[1] 36816\r\n"]
|
||||
[8.98642, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
||||
[8.995202, "o", "\u001b[2m2025-01-14T07:33:13.136349Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mvoidpin\u001b[0m\u001b[2m:\u001b[0m starting listener \u001b[3mgrpc\u001b[0m\u001b[2m=\u001b[0m\"0.0.0.0:7900\"\r\n"]
|
||||
[9.060819, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\r\n\u001b[38;2;255;153;102mvoidpin\u001b[0m \u001b[90mHEAD\u001b[1;32m(153edb1)\u001b[0m \u001b[38;2;255;153;102m \u001b[0mis \u001b[1;38;5;208m📦 v0.0.1\u001b[0m \u001b[1;31mrs \u001b[0mwith \u001b[1;34m🐃 v1.49.0 \u001b[0m\r\n\u001b[1;34m✦\u001b[0m \u001b[38;2;255;153;102m❯\u001b[0m \u001b[K"]
|
||||
[9.061906, "o", "\u001b[6 q"]
|
||||
[9.062876, "o", "\u001b[6 q"]
|
||||
[9.063056, "o", "\u001b[?2004h"]
|
||||
[10.265829, "o", "s"]
|
||||
[10.272815, "o", "\b\u001b[1m\u001b[31ms\u001b[0m\u001b[39m"]
|
||||
[10.34456, "o", "\b\u001b[1m\u001b[31ms\u001b[0m\u001b[39m\u001b[90msh nef_remote\u001b[39m\u001b[13D"]
|
||||
[10.409989, "o", "\b\u001b[1m\u001b[31ms\u001b[1m\u001b[31ms\u001b[0m\u001b[39m"]
|
||||
[10.531573, "o", "\b\b\u001b[1m\u001b[31ms\u001b[1m\u001b[31ms\u001b[1m\u001b[31mh\u001b[0m\u001b[39m"]
|
||||
[10.534938, "o", "\b\b\b\u001b[0m\u001b[32ms\u001b[0m\u001b[32ms\u001b[0m\u001b[32mh\u001b[39m"]
|
||||
[10.650848, "o", "\b\u001b[32mh\u001b[32m \u001b[39m"]
|
||||
[10.654699, "o", "\b\b\u001b[32mh\u001b[39m\u001b[39m "]
|
||||
[12.060573, "o", "\u001b[39mn"]
|
||||
[12.153753, "o", "\u001b[39me"]
|
||||
[12.238632, "o", "\u001b[39mf"]
|
||||
[12.536018, "o", "\u001b[39m_"]
|
||||
[12.700909, "o", "\u001b[39mr"]
|
||||
[12.776911, "o", "\u001b[39me"]
|
||||
[12.839538, "o", "\u001b[39mm"]
|
||||
[12.97043, "o", "\u001b[39mo"]
|
||||
[13.030559, "o", "\u001b[39mt"]
|
||||
[13.111063, "o", "\u001b[39me"]
|
||||
[13.319003, "o", "\u001b[?1l\u001b>"]
|
||||
[13.319486, "o", "\u001b[?2004l"]
|
||||
[13.325988, "o", "\u001b[0 q"]
|
||||
[13.326164, "o", "\r\r\n"]
|
||||
[14.748903, "o", "Last login: Tue Jan 14 08:27:03 2025 from 10.0.9.20\r\r\n"]
|
||||
[14.80584, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
||||
[14.840843, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\r\n\u001b[1;33mkjuulh\u001b[0m in \u001b[1;2;32m🌐 nefarious\u001b[0m in \u001b[38;2;255;153;102m~\u001b[0m on \u001b[1;33m☁️ (eu-west-1) \u001b[0m\r\n\u001b[38;2;255;153;102m❯\u001b[0m \u001b[K\u001b[6 q\u001b[6 q\u001b[?2004h"]
|
||||
[15.45051, "o", "e"]
|
||||
[15.456172, "o", "\b\u001b[1m\u001b[31me\u001b[0m\u001b[39m"]
|
||||
[15.461708, "o", "\b\u001b[1m\u001b[31me\u001b[0m\u001b[39m\u001b[90mcho \"mystuff\" | voidpin remote copy\u001b[39m\u001b[35D"]
|
||||
[15.623151, "o", "\b\u001b[1m\u001b[31me\u001b[1m\u001b[31mx\u001b[0m\u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[34D"]
|
||||
[15.644024, "o", "\u001b[90mport VOIDPIN_REMOTE=http://10.0.9.20:7900\u001b[39m\u001b[41D"]
|
||||
[15.743819, "o", "\b\b\u001b[1m\u001b[31me\u001b[1m\u001b[31mx\u001b[1m\u001b[31mp\u001b[0m\u001b[39m"]
|
||||
[15.908543, "o", "\b\u001b[1m\u001b[31mp\u001b[1m\u001b[31mo\u001b[0m\u001b[39m"]
|
||||
[16.003031, "o", "\b\u001b[1m\u001b[31mo\u001b[1m\u001b[31mr\u001b[0m\u001b[39m"]
|
||||
[16.265633, "o", "\b\u001b[1m\u001b[31mr\u001b[1m\u001b[31mt\u001b[0m\u001b[39m\b\b\b\b\b\b\u001b[0m\u001b[33me\u001b[0m\u001b[33mx\u001b[0m\u001b[33mp\u001b[0m\u001b[33mo\u001b[0m\u001b[33mr\u001b[0m\u001b[33mt\u001b[39m"]
|
||||
[16.276286, "o", "\b\u001b[33mt\u001b[33m \u001b[39m\b\b\u001b[33mt\u001b[39m\u001b[39m "]
|
||||
[17.117006, "o", "\u001b[39mV"]
|
||||
[17.118576, "o", "\b\u001b[4mV\u001b[24m"]
|
||||
[17.334112, "o", "\b\u001b[4mV\u001b[39m\u001b[4mO\u001b[24m\b\b\u001b[24mV\u001b[24mO"]
|
||||
[17.363757, "o", "\u001b[39mI"]
|
||||
[17.604581, "o", "\u001b[39mD"]
|
||||
[17.931075, "o", "\u001b[39mP\u001b[39mI\u001b[39mN\u001b[39m_\u001b[39mR\u001b[39mE\u001b[39mM\u001b[39mO\u001b[39mT\u001b[39mE\u001b[39m=\u001b[39mh\u001b[39mt\u001b[39mt\u001b[39mp\u001b[39m:\u001b[39m/\u001b[39m/\u001b[39m1\u001b[39m0\u001b[39m.\u001b[39m0\u001b[39m.\u001b[39m9\u001b[39m.\u001b[39m2\u001b[39m0\u001b[39m:\u001b[39m7\u001b[39m9\u001b[39m0\u001b[39m0"]
|
||||
[18.721578, "o", "\u001b[0 q\u001b[?2004l\r\r\n"]
|
||||
[18.729848, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
||||
[18.745102, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\r\n\u001b[1;33mkjuulh\u001b[0m in \u001b[1;2;32m🌐 nefarious\u001b[0m in \u001b[38;2;255;153;102m~\u001b[0m on \u001b[1;33m☁️ (eu-west-1) \u001b[0m\r\n\u001b[38;2;255;153;102m❯\u001b[0m \u001b[K\u001b[6 q\u001b[6 q\u001b[?2004h"]
|
||||
[19.768372, "o", "v\b\u001b[4mv\u001b[24m"]
|
||||
[19.787679, "o", "\b\u001b[4mv\u001b[24m\u001b[90mirtualenv venv\u001b[39m\u001b[14D"]
|
||||
[19.948701, "o", "\b\u001b[4mv\u001b[39m\u001b[4mo\u001b[24m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[13D"]
|
||||
[19.950166, "o", "\b\b\u001b[24m\u001b[1m\u001b[31mv\u001b[24m\u001b[1m\u001b[31mo\u001b[0m\u001b[39m"]
|
||||
[19.998976, "o", "\b\b\u001b[1m\u001b[31mv\u001b[1m\u001b[31mo\u001b[1m\u001b[31mi\u001b[0m\u001b[39m"]
|
||||
[20.399333, "o", "\b\b\b\u001b[1m\u001b[31mv\u001b[1m\u001b[31mo\u001b[0m\u001b[39m\u001b[0m\u001b[39m \b"]
|
||||
[20.536472, "o", "\b\b\u001b[1m\u001b[31mv\u001b[0m\u001b[39m\u001b[0m\u001b[39m \b\b\u001b[0m\u001b[39m\u001b[4mv\u001b[24m"]
|
||||
[20.54648, "o", "\b\u001b[4mv\u001b[24m\u001b[90mirtualenv venv\u001b[39m\u001b[14D"]
|
||||
[20.659047, "o", "\b\u001b[24m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[15D"]
|
||||
[21.004154, "o", "e\b\u001b[1m\u001b[31me\u001b[0m\u001b[39m"]
|
||||
[21.010045, "o", "\b\u001b[1m\u001b[31me\u001b[0m\u001b[39m\u001b[90mxport VOIDPIN_REMOTE=http://10.0.9.20:7900\u001b[39m\u001b[42D"]
|
||||
[21.21325, "o", "\b\u001b[1m\u001b[31me\u001b[1m\u001b[31mc\u001b[0m\u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[41D"]
|
||||
[21.222033, "o", "\u001b[90mho \"mystuff\" | voidpin remote copy\u001b[39m\u001b[34D"]
|
||||
[21.294992, "o", "\b\b\u001b[1m\u001b[31me\u001b[1m\u001b[31mc\u001b[1m\u001b[31mh\u001b[0m\u001b[39m"]
|
||||
[21.419667, "o", "\b\u001b[1m\u001b[31mh\u001b[1m\u001b[31mo\u001b[0m\u001b[39m"]
|
||||
[21.42291, "o", "\b\b\b\b\u001b[0m\u001b[32me\u001b[0m\u001b[32mc\u001b[0m\u001b[32mh\u001b[0m\u001b[32mo\u001b[39m"]
|
||||
[21.505433, "o", "\b\u001b[32mo\u001b[32m \u001b[39m\b\b\u001b[32mo\u001b[39m\u001b[39m "]
|
||||
[21.988846, "o", "\u001b[39m\"\u001b[39mm\u001b[39my\u001b[39ms\u001b[39mt\u001b[39mu\u001b[39mf\u001b[39mf\u001b[39m\"\u001b[39m \u001b[39m|\u001b[39m \u001b[39mv\u001b[39mo\u001b[39mi\u001b[39md\u001b[39mp\u001b[39mi\u001b[39mn\u001b[39m \u001b[39mr\u001b[39me\u001b[39mm\u001b[39mo\u001b[39mt\u001b[39me\u001b[39m \u001b[39mc\u001b[39mo\u001b[39mp\u001b[39my"]
|
||||
[21.993557, "o", "\u001b[31D\u001b[33m\"\u001b[33mm\u001b[33my\u001b[33ms\u001b[33mt\u001b[33mu\u001b[33mf\u001b[33mf\u001b[33m\"\u001b[39m\u001b[3C\u001b[32mv\u001b[32mo\u001b[32mi\u001b[32md\u001b[32mp\u001b[32mi\u001b[32mn\u001b[39m\u001b[12C"]
|
||||
[23.489379, "o", "\u001b[0 q"]
|
||||
[23.490939, "o", "\u001b[?2004l\r\r\n"]
|
||||
[23.569732, "o", "\u001b[2m2025-01-14T07:33:20.444640Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mvoidpin::remote_copy\u001b[0m\u001b[2m:\u001b[0m sending copy request\r\n"]
|
||||
[23.595738, "o", "\u001b[2m2025-01-14T07:33:27.736730Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mvoidpin::copy\u001b[0m\u001b[2m:\u001b[0m copy process ended with status: ExitStatus(unix_wait_status(0))\n"]
|
||||
[23.677319, "o", "\u001b[2m2025-01-14T07:33:20.549068Z\u001b[0m \u001b[32m INFO\u001b[0m \u001b[2mvoidpin::remote_copy\u001b[0m\u001b[2m:\u001b[0m sent copy request\r\n"]
|
||||
[23.677877, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
||||
[23.682634, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\r\n\u001b[1;33mkjuulh\u001b[0m in \u001b[1;2;32m🌐 nefarious\u001b[0m in \u001b[38;2;255;153;102m~\u001b[0m on \u001b[1;33m☁️ (eu-west-1) \u001b[0m\r\n\u001b[38;2;255;153;102m❯\u001b[0m \u001b[K"]
|
||||
[23.684943, "o", "\u001b[6 q\u001b[6 q"]
|
||||
[23.685144, "o", "\u001b[?2004h"]
|
||||
[26.039094, "o", "e\b\u001b[1m\u001b[31me\u001b[0m\u001b[39m"]
|
||||
[26.058901, "o", "\b\u001b[1m\u001b[31me\u001b[0m\u001b[39m\u001b[90mcho \"mystuff\" | voidpin remote copy\u001b[39m\u001b[35D"]
|
||||
[26.200566, "o", "\b\u001b[1m\u001b[31me\u001b[1m\u001b[31mx\u001b[0m\u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[34D"]
|
||||
[26.224342, "o", "\b\b\u001b[1m\u001b[31me\u001b[1m\u001b[31mx\u001b[1m\u001b[31mi\u001b[0m\u001b[39m"]
|
||||
[26.236469, "o", "\u001b[90mt\u001b[39m\b"]
|
||||
[26.338963, "o", "\b\u001b[1m\u001b[31mi\u001b[1m\u001b[31mt\u001b[0m\u001b[39m"]
|
||||
[26.347595, "o", "\b\b\b\b\u001b[0m\u001b[32me\u001b[0m\u001b[32mx\u001b[0m\u001b[32mi\u001b[0m\u001b[32mt\u001b[39m"]
|
||||
[27.917748, "o", "\u001b[0 q\u001b[?2004l\r\r\n"]
|
||||
[27.92436, "o", "Connection to 10.0.9.18 closed.\r\r\n"]
|
||||
[27.927279, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
||||
[28.005869, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\r\n\u001b[38;2;255;153;102mvoidpin\u001b[0m \u001b[90mHEAD\u001b[1;32m(153edb1)\u001b[0m \u001b[38;2;255;153;102m \u001b[0mis \u001b[1;38;5;208m📦 v0.0.1\u001b[0m \u001b[1;31mrs \u001b[0mwith \u001b[1;34m🐃 v1.49.0 \u001b[0m\u001b[33m14s\u001b[0m \r\n\u001b[1;34m✦\u001b[0m \u001b[38;2;255;153;102m❯\u001b[0m \u001b[K"]
|
||||
[28.006941, "o", "\u001b[6 q"]
|
||||
[28.007819, "o", "\u001b[6 q"]
|
||||
[28.007998, "o", "\u001b[?2004h"]
|
||||
[29.624611, "o", "p"]
|
||||
[29.632533, "o", "\b\u001b[1m\u001b[31mp\u001b[0m\u001b[39m"]
|
||||
[29.674006, "o", "\b\u001b[1m\u001b[31mp\u001b[0m\u001b[39m\u001b[90msql -h localhost -p 5432 -U postgres -d service\u001b[39m\u001b[47D"]
|
||||
[29.861312, "o", "\b\u001b[1m\u001b[31mp\u001b[1m\u001b[31mb\u001b[0m\u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[46D"]
|
||||
[29.896875, "o", "\u001b[90mcopy\u001b[39m\b\b\b\b"]
|
||||
[30.455748, "o", "\b\b\u001b[1m\u001b[31mp\u001b[1m\u001b[31mb\u001b[1m\u001b[31mp\u001b[0m\u001b[39m\u001b[39m \u001b[39m \u001b[39m \b\b\b"]
|
||||
[30.492269, "o", "\u001b[90maste\u001b[39m\b\b\b\b"]
|
||||
[30.511887, "o", "\b\u001b[1m\u001b[31mp\u001b[1m\u001b[31ma\u001b[0m\u001b[39m"]
|
||||
[30.640428, "o", "\b\u001b[1m\u001b[31ma\u001b[1m\u001b[31ms\u001b[0m\u001b[39m"]
|
||||
[30.900008, "o", "\b\u001b[1m\u001b[31ms\u001b[1m\u001b[31mt\u001b[0m\u001b[39m"]
|
||||
[31.00196, "o", "\b\u001b[1m\u001b[31mt\u001b[1m\u001b[31me\u001b[0m\u001b[39m"]
|
||||
[31.004152, "o", "\b\b\b\b\b\b\b\u001b[0m\u001b[32mp\u001b[0m\u001b[32mb\u001b[0m\u001b[32mp\u001b[0m\u001b[32ma\u001b[0m\u001b[32ms\u001b[0m\u001b[32mt\u001b[0m\u001b[32me\u001b[39m"]
|
||||
[31.436893, "o", "\u001b[?1l\u001b>"]
|
||||
[31.437147, "o", "\u001b[?2004l"]
|
||||
[31.440483, "o", "\u001b[0 q"]
|
||||
[31.440758, "o", "\r\r\n"]
|
||||
[31.506519, "o", "mystuff\r\n"]
|
||||
[31.507028, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
||||
[31.578124, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\r\n\u001b[38;2;255;153;102mvoidpin\u001b[0m \u001b[90mHEAD\u001b[1;32m(153edb1)\u001b[0m \u001b[38;2;255;153;102m \u001b[0mis \u001b[1;38;5;208m📦 v0.0.1\u001b[0m \u001b[1;31mrs \u001b[0mwith \u001b[1;34m🐃 v1.49.0 \u001b[0m\r\n\u001b[1;34m✦\u001b[0m \u001b[38;2;255;153;102m❯\u001b[0m \u001b[K"]
|
||||
[31.579154, "o", "\u001b[6 q"]
|
||||
[31.580021, "o", "\u001b[6 q"]
|
||||
[31.580178, "o", "\u001b[?2004h"]
|
||||
[33.751349, "o", "\u001b[?2004l\r\r\n"]
|
||||
[33.75158, "o", "zsh: you have running jobs.\r\n"]
|
||||
[33.751697, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
||||
[33.839059, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\r\n\u001b[38;2;255;153;102mvoidpin\u001b[0m \u001b[90mHEAD\u001b[1;32m(153edb1)\u001b[0m \u001b[38;2;255;153;102m \u001b[0mis \u001b[1;38;5;208m📦 v0.0.1\u001b[0m \u001b[1;31mrs \u001b[0mwith \u001b[1;34m🐃 v1.49.0 \u001b[0m\r\n\u001b[1;34m✦\u001b[0m \u001b[38;2;255;153;102m❯\u001b[0m \u001b[K"]
|
||||
[33.840399, "o", "\u001b[6 q"]
|
||||
[33.841412, "o", "\u001b[6 q"]
|
||||
[33.84158, "o", "\u001b[?2004h"]
|
||||
[39.131276, "o", "\u001b[?2004l\r\r\n"]
|
||||
[39.13278, "o", "zsh: warning: 1 jobs SIGHUPed\r\n"]
|
||||
[39.13415, "o", "[1] + hangup voidpin listen\r\n"]
|
BIN
assets/demo.gif
Normal file
BIN
assets/demo.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 197 KiB |
@@ -29,7 +29,7 @@ struct Command {
|
||||
#[derive(Subcommand)]
|
||||
enum Commands {
|
||||
Listen {
|
||||
#[arg(long, env = "VP_GRPC_HOST", default_value = "0.0.0.0:7900")]
|
||||
#[arg(long, env = "VOIDPIN_GRPC_HOST", default_value = "0.0.0.0:7900")]
|
||||
grpc: SocketAddr,
|
||||
},
|
||||
Copy {},
|
||||
@@ -44,7 +44,7 @@ enum RemoteCommands {
|
||||
Copy {
|
||||
#[arg(
|
||||
long = "remote-host",
|
||||
env = "VP_REMOTE_HOST",
|
||||
env = "VOIDPIN_REMOTE",
|
||||
default_value = "http://0.0.0.0:7900"
|
||||
)]
|
||||
remote_host: String,
|
||||
|
Reference in New Issue
Block a user