commit ca5d82bb8e85dbfd8e60c6e0bfb313639ac5f9b1
| author | 斟酌 鵬兄 <tgckpg@gmail.com> |
| date | 2026-07-20T14:33:24Z |
| subject | cleanup clipboard sock |
commit ca5d82bb8e85dbfd8e60c6e0bfb313639ac5f9b1
Author: 斟酌 鵬兄 <tgckpg@gmail.com>
Date: 2026-07-20T14:33:24Z
cleanup clipboard sock
---
bash/dist/rbashrc | 2 +-
bash/dist/rbashrc.asc | 10 +++++-----
bash/dist/sources.list | 2 +-
bash/sources/42_clipboard_server | 21 +++++++++++++++------
4 files changed, 22 insertions(+), 13 deletions(-)
diff --git a/bash/dist/rbashrc b/bash/dist/rbashrc
index 9662b89..b0b2c6a 100755
--- a/bash/dist/rbashrc
+++ b/bash/dist/rbashrc
@@ -18,7 +18,7 @@ RBASH_CONFIG="$RBASH_HOME/config"
RBASH_ENV="$RBASH_HOME/env"
RBASH_MERGED="$RBASH_CACHE_DIR/merged"
RBASH_BIN="$RBASH_HOME/bin"
-RBASH_SOURCES_SUM="508ba717f5f31796f03fd176ecb50432a2c3d236896cef066f2cc535369bbca9"
+RBASH_SOURCES_SUM="35fcb5b8248bd42d7b723b59fced636d08e183db39157753f331d6312d497f26"
# ---- rbash: bash/core/00_env.bash ----
diff --git a/bash/dist/rbashrc.asc b/bash/dist/rbashrc.asc
index 2a6d8a9..a32eb0d 100644
--- a/bash/dist/rbashrc.asc
+++ b/bash/dist/rbashrc.asc
@@ -1,8 +1,8 @@
-----BEGIN PGP SIGNATURE-----
-iJEEABYKADkWIQR8HpSNhBJUxWnt+97Vz1+xz60nwwUCal4d5BsUgAAAAAAEAA5t
-YW51MiwyLjUrMS4xMiwwLDMACgkQ1c9fsc+tJ8Nd+gD+KJLL3HNcQnM+bcQZovsc
-7Rw8obzGQ37BloiFHmCoufQA/RJkP3WL2zbLlBPrjJcj2IZ/bXRgmQaWtsIddaFN
-HnEI
-=6dLh
+iJEEABYKADkWIQR8HpSNhBJUxWnt+97Vz1+xz60nwwUCal4xjxsUgAAAAAAEAA5t
+YW51MiwyLjUrMS4xMiwwLDMACgkQ1c9fsc+tJ8MS8AEAsBsn7/OguDTuudMHR2zj
+qhucXMmwPNog4hWUEZkVJ+gBAOqJ8S/RzrHyZUCaZCytQqgI9aeex6BxxT1jplBH
+bbsM
+=UzMm
-----END PGP SIGNATURE-----
diff --git a/bash/dist/sources.list b/bash/dist/sources.list
index f48851c..8324fc4 100644
--- a/bash/dist/sources.list
+++ b/bash/dist/sources.list
@@ -13,5 +13,5 @@ b5a488efc0558e2b795a1558e2c91a8aeecc3fd441d437aff3a4749d5eb0bdfc sources/23_win
5dbc166ce1b051b54d244ef5dc6b52dfbff03965e9abb0ed891d441dffbf8a76 sources/31_git-utils
c9c270376844e7c7e3c48b1e86c2ce3e7824dde64e8724c17c5fc95910abd11c sources/40_go-command
c0e8ef70466063907b5ed9e52c13532b0019b8cb5975d020899804549a76a37f sources/41_pivot-command
-986563f225092fbf3514e396f4d651beef63cf7690202f85e2c2c420f386bf54 sources/42_clipboard_server
+27466917308d3a1891937d3c7cdb11f31488f886cb0fecf656c720eec065a05c sources/42_clipboard_server
d02be2a68e8bd1f7e5adacbdd0bdc4f426aabfa1a57709270b673617db6c5352 sources/60_diagnostics
diff --git a/bash/sources/42_clipboard_server b/bash/sources/42_clipboard_server
index b4574d1..e7d2059 100644
--- a/bash/sources/42_clipboard_server
+++ b/bash/sources/42_clipboard_server
@@ -10,6 +10,11 @@ SSH_CLIPBOARD_REMOTE_SOCKET="/tmp/ssh-clipboard-client.sock"
function clipboard_server_running {
local pid
+ if [ -n "${SSH_CLIPBOARD_REMOTE_SOCKET:-}" ] &&
+ [ -S "$SSH_CLIPBOARD_REMOTE_SOCKET" ]; then
+ return 0
+ fi
+
[[ -f "$SSH_CLIPBOARD_PIDFILE" ]] || return 1
read -r pid < "$SSH_CLIPBOARD_PIDFILE"
@@ -19,6 +24,9 @@ function clipboard_server_running {
}
function init_clipboard_server {
+ if clipboard_server_running; then
+ return 0
+ fi
case "$OSTYPE" in
darwin*)
command -v socat >/dev/null 2>&1 || {
@@ -32,10 +40,6 @@ function init_clipboard_server {
return 1
}
- if clipboard_server_running; then
- return 0
- fi
-
mkdir -p "$SSH_CLIPBOARD_DIR"
chmod 700 "$SSH_CLIPBOARD_DIR"
@@ -90,12 +94,17 @@ function sshc {
echo "-- ssh with clipboard server"
command ssh \
- -o StreamLocalBindUnlink=yes \
- -o ExitOnForwardFailure=yes \
-R "$SSH_CLIPBOARD_REMOTE_SOCKET:$SSH_CLIPBOARD_SOCKET" \
"$@"
}
+cleanup_ssh_clipboard() {
+ [ -n "${SSH_CONNECTION:-}" ] || return
+ [ -S "$SSH_CLIPBOARD_REMOTE_SOCKET" ] || return
+ rm -f -- "$SSH_CLIPBOARD_REMOTE_SOCKET"
+}
+
if init_clipboard_server; then
alias ssh='sshc'
+ trap cleanup_ssh_clipboard EXIT HUP TERM
fi