SMOLNET PORTAL home about changes
iAdd -p flag for persistent connections through the script - drist - a remote deployment tool	Err	bitreich.org	70
hgit clone git://bitreich.org/drist/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/drist/	URL:git://bitreich.org/drist/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/drist/	bitreich.org	70
1Log	/scm/drist/log.gph	bitreich.org	70
1Files	/scm/drist/files.gph	bitreich.org	70
1Refs	/scm/drist/refs.gph	bitreich.org	70
1Tags	/scm/drist/tag	bitreich.org	70
1README	/scm/drist/file/README.gph	bitreich.org	70
1LICENSE	/scm/drist/file/LICENSE.gph	bitreich.org	70
i---	Err	bitreich.org	70
1commit 1937be9bc7349fcd17b34d24cb3738fbba966d62	/scm/drist/commit/1937be9bc7349fcd17b34d24cb3738fbba966d62.gph	bitreich.org	70
1parent 9131a56282d056474e4d59233dcf3ad2ec9b24cc	/scm/drist/commit/9131a56282d056474e4d59233dcf3ad2ec9b24cc.gph	bitreich.org	70
hAuthor: Solene Rapenne <solene@perso.pw>	URL:mailto:solene@perso.pw	bitreich.org	70
iDate:   Fri, 15 Feb 2019 15:48:59 +0100	Err	bitreich.org	70
i	Err	bitreich.org	70
iAdd -p flag for persistent connections through the script	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M drist                               |      24 +++++++++++++++++++-----	Err	bitreich.org	70
i  M drist.1                             |       9 +++++++++	Err	bitreich.org	70
i	Err	bitreich.org	70
i2 files changed, 28 insertions(+), 5 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/drist b/drist	/scm/drist/file/drist.gph	bitreich.org	70
i@@ -4,17 +4,19 @@ SIMULATE=0	Err	bitreich.org	70
i SUDO=0	Err	bitreich.org	70
i SUDO_BIN=sudo	Err	bitreich.org	70
i EXEC=""	Err	bitreich.org	70
i+SSHONCE=0	Err	bitreich.org	70
i 	Err	bitreich.org	70
i usage() {	Err	bitreich.org	70
i         echo "$0 [-n] [-s [-e sudo|doas]] server"	Err	bitreich.org	70
i         exit 0	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-while getopts nse: arg; do	Err	bitreich.org	70
i+while getopts pnse: arg; do	Err	bitreich.org	70
i         case ${arg} in	Err	bitreich.org	70
i                 n) SIMULATE=1 ;;	Err	bitreich.org	70
i                 s) SUDO=1 ;;	Err	bitreich.org	70
i                 e) SUDO_BIN="${OPTARG}" ;;	Err	bitreich.org	70
i+                p) SSHONCE=1 ;;	Err	bitreich.org	70
i                 *) usage ;;	Err	bitreich.org	70
i         esac	Err	bitreich.org	70
i done	Err	bitreich.org	70
i@@ -26,11 +28,17 @@ then	Err	bitreich.org	70
i         EXEC="$SUDO_BIN"	Err	bitreich.org	70
i fi	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+# use ControlMaster to make connections persistent	Err	bitreich.org	70
i+if [ "$SSHONCE" -eq 1 ]	Err	bitreich.org	70
i+then	Err	bitreich.org	70
i+        SSH_PARAMS=-o"ControlMaster=auto"" "-o"ControlPath=/tmp/drist_ssh_%h_%p_%r.sock"" "-o"ControlPersist=1m"	Err	bitreich.org	70
i+fi	Err	bitreich.org	70
i+	Err	bitreich.org	70
i # check if host exists	Err	bitreich.org	70
i if [ "$#" -ne 1 ]; then	Err	bitreich.org	70
i         usage	Err	bitreich.org	70
i else	Err	bitreich.org	70
i-        HOSTNAME=$(ssh "$1" "${EXEC} uname -n")	Err	bitreich.org	70
i+        HOSTNAME=$(ssh $SSH_PARAMS "$1" "${EXEC} uname -n")	Err	bitreich.org	70
i         if [ "$?" -ne 0 ]; then	Err	bitreich.org	70
i                 echo "Error while ssh ${1}"	Err	bitreich.org	70
i                 exit 2	Err	bitreich.org	70
i@@ -50,7 +58,7 @@ copy_files() {	Err	bitreich.org	70
i                         find "${1}"/ -type f | cut -d '/' -f 2- | tee "${LIST}" | sed 's/^/        \//'	Err	bitreich.org	70
i                         if [ "$SIMULATE" -ne 1 ]	Err	bitreich.org	70
i                         then	Err	bitreich.org	70
i-                                rsync --rsync-path="${EXEC} rsync" -lD --files-from="${LIST}" "${1}/" "${2}":/	Err	bitreich.org	70
i+                                rsync -e "ssh $SSH_PARAMS" --rsync-path="${EXEC} rsync" -lD --files-from="${LIST}" "${1}/" "${2}":/	Err	bitreich.org	70
i                         fi	Err	bitreich.org	70
i                         rm "$LIST"	Err	bitreich.org	70
i                 fi	Err	bitreich.org	70
i@@ -65,7 +73,7 @@ remote_script() {	Err	bitreich.org	70
i                 printf 'Executing file "%s":\n' "$1"	Err	bitreich.org	70
i                 if [ "$SIMULATE" -ne 1 ]	Err	bitreich.org	70
i                 then	Err	bitreich.org	70
i-                        ssh "${2}" "DRIST=$(mktemp /tmp/drist.XXXXXXXXXXXX) &&	Err	bitreich.org	70
i+                        ssh $SSH_PARAMS "${2}" "DRIST=$(mktemp /tmp/drist.XXXXXXXXXXXX) &&	Err	bitreich.org	70
i                             cat - > \$DRIST &&	Err	bitreich.org	70
i                             chmod u+x \$DRIST &&	Err	bitreich.org	70
i                             ${EXEC} \$DRIST ;	Err	bitreich.org	70
i@@ -91,7 +99,7 @@ delete_files() {	Err	bitreich.org	70
i 	Err	bitreich.org	70
i                         if [ "$SIMULATE" -ne 1 ]	Err	bitreich.org	70
i                         then	Err	bitreich.org	70
i-                                test -s "$LIST" && ssh "$2" "${EXEC} rm $(cat $LIST)"	Err	bitreich.org	70
i+                                test -s "$LIST" && ssh $SSH_PARAMS "$2" "${EXEC} rm $(cat $LIST)"	Err	bitreich.org	70
i                         fi	Err	bitreich.org	70
i                         rm $LIST	Err	bitreich.org	70
i                 fi	Err	bitreich.org	70
i@@ -105,3 +113,9 @@ remote_script "script" "$1"	Err	bitreich.org	70
i remote_script "script-${HOSTNAME}" "$1"	Err	bitreich.org	70
i delete_files "absent" "$1"	Err	bitreich.org	70
i delete_files "absent-${HOSTNAME}" "$1"	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+# close socket if persistance is actived	Err	bitreich.org	70
i+if [ "$SSHONCE" -eq 1 ]	Err	bitreich.org	70
i+then	Err	bitreich.org	70
i+        ssh $SSH_PARAMS -O exit -N "$1"	Err	bitreich.org	70
i+fi	Err	bitreich.org	70
1diff --git a/drist.1 b/drist.1	/scm/drist/file/drist.1.gph	bitreich.org	70
i@@ -6,10 +6,17 @@	Err	bitreich.org	70
i .Nd dumb remote installer shell tool, a remote deployment tool	Err	bitreich.org	70
i .Sh SYNOPSIS	Err	bitreich.org	70
i .Nm	Err	bitreich.org	70
i+.Op Fl p	Err	bitreich.org	70
i .Op Fl n	Err	bitreich.org	70
i .Op Fl s Op Fl e Ar sudo|doas	Err	bitreich.org	70
i .Ar server	Err	bitreich.org	70
i .Sh OPTIONS	Err	bitreich.org	70
i+.Op Fl p	Err	bitreich.org	70
i+to use persistent ssh connection, allowing to ssh only once	Err	bitreich.org	70
i+for the differents steps.	Err	bitreich.org	70
i+This uses ControlMaster feature from	Err	bitreich.org	70
i+.Xr ssh 1 .	Err	bitreich.org	70
i+	Err	bitreich.org	70
i .Op Fl n	Err	bitreich.org	70
i to simulate.	Err	bitreich.org	70
i Tells 	Err	bitreich.org	70
i@@ -118,6 +125,8 @@ distribution.	Err	bitreich.org	70
i .Ex -std drist	Err	bitreich.org	70
i .Sh SEE ALSO	Err	bitreich.org	70
i .Xr rsync 1	Err	bitreich.org	70
i+.Xr ssh 1	Err	bitreich.org	70
i+.Xr ssh_config 5	Err	bitreich.org	70
i .Sh Authors	Err	bitreich.org	70
i .An -nosplit	Err	bitreich.org	70
i The	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/drist/commit/1937be9bc7349fcd...
Content-Typetext/plain; charset=utf-8