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