From b67bb21013365fbce53a79abd7e04e424a0aaff7 Mon Sep 17 00:00:00 2001
From: Adar Nimrod <nimrod@shore.co.il>
Date: Mon, 9 Dec 2019 11:46:14 +0200
Subject: [PATCH] Better checking for docker-remote pruning.

Don't delete sockets that are still in use (have an open ssh client
listening).
---
 .bashrc                      | 10 ++++++++--
 Documents/bin/_docker-remote |  3 ++-
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/.bashrc b/.bashrc
index 6a82356..c025c9e 100644
--- a/.bashrc
+++ b/.bashrc
@@ -113,7 +113,6 @@ alias rc_make="make --directory $HOME --always-make"
 alias rc_update="rc_make vendored generated"
 alias gen-ssh-config="rc_make .ssh/config"
 alias bfg='java -jar $HOME/.local/share/bfg/bfg.jar'
-alias prune_docker_remote='find ~/.ssh -maxdepth 1 -type s -name "docker_*" -exec rm {} \;'
 alias close='ssh -fnNTS ~/.ssh/%C.sock -O exit'
 alias jjb='jenkins-jobs'
 alias diff='diff --unified'
@@ -294,6 +293,13 @@ flatpak_kill () {
     fi
 }
 
+__prune_docker_remote () {
+    for i in ~/.ssh/docker_*
+    do
+        [ ! -e "$i" ] || lsof -t "$i" >/dev/null || rm "$i"
+    done
+}
+
 __prompt () {
     local exitstatus="$?"
     local runduration endtime pre_prompt
@@ -377,4 +383,4 @@ then
     ! command -v direnv > /dev/null || eval "$(direnv hook bash)"
 fi
 
-prune_docker_remote
+__prune_docker_remote
diff --git a/Documents/bin/_docker-remote b/Documents/bin/_docker-remote
index 423d7f2..81cd615 100755
--- a/Documents/bin/_docker-remote
+++ b/Documents/bin/_docker-remote
@@ -5,7 +5,8 @@ set -eu
 host="$1"
 localsocket="$HOME/.ssh/docker_$host.sock"
 
-lsof -t "$localsocket" > /dev/null 2>&1 || rm -f "$localsocket"
+[ ! -e "$localsocket" ] || lsof -f "$localsocket" >/dev/null || rm "$localsocket"
+
 forward "$host" "$localsocket:/var/run/docker.sock" > /dev/null 2>&1
 
 # Echo the DOCKER_HOST export command, for eval'ing.
-- 
GitLab