SMOLNET PORTAL home about changes
iNew option for using sudo/doas on remote server - 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 c9735fd7d912dbca6e03c2725456d4eeb6d9487b	/scm/drist/commit/c9735fd7d912dbca6e03c2725456d4eeb6d9487b.gph	bitreich.org	70
1parent 723d94faa06c4597f88ccfdcf7821154bf889138	/scm/drist/commit/723d94faa06c4597f88ccfdcf7821154bf889138.gph	bitreich.org	70
hAuthor: Solene Rapenne <solene@perso.pw>	URL:mailto:solene@perso.pw	bitreich.org	70
iDate:   Thu, 29 Nov 2018 08:20:10 +0100	Err	bitreich.org	70
i	Err	bitreich.org	70
iNew option for using sudo/doas on remote server	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M drist                               |      46 +++++++++++++++++++++++++------	Err	bitreich.org	70
i  M drist.1                             |      14 ++++++++++++--	Err	bitreich.org	70
i	Err	bitreich.org	70
i2 files changed, 49 insertions(+), 11 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@@ -1,8 +1,36 @@	Err	bitreich.org	70
i #!/bin/sh	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+usage() {	Err	bitreich.org	70
i+        echo "$0 [-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+	Err	bitreich.org	70
i+while getopts se: arg; do	Err	bitreich.org	70
i+        case ${arg} in	Err	bitreich.org	70
i+                s) SUDO=1 ;;	Err	bitreich.org	70
i+                e) SUDO_BIN="${OPTARG}" ;;	Err	bitreich.org	70
i+                *) usage ;;	Err	bitreich.org	70
i+        esac	Err	bitreich.org	70
i+done	Err	bitreich.org	70
i+shift $((OPTIND - 1))	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+# allow to use a privilege escalation program	Err	bitreich.org	70
i+if [ "$SUDO" -eq 1 ]	Err	bitreich.org	70
i+then	Err	bitreich.org	70
i+        # defaulting to sudo	Err	bitreich.org	70
i+        if [ -z "$SUDO_BIN" ]	Err	bitreich.org	70
i+        then	Err	bitreich.org	70
i+                SUDO_BIN=sudo	Err	bitreich.org	70
i+        fi	Err	bitreich.org	70
i+        EXEC="$SUDO_BIN"	Err	bitreich.org	70
i+else	Err	bitreich.org	70
i+        EXEC=""	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-        echo "You should pass a server as a parameter"	Err	bitreich.org	70
i-        exit 1	Err	bitreich.org	70
i+        usage	Err	bitreich.org	70
i else	Err	bitreich.org	70
i         HOSTNAME=$(ssh "$1" "uname -n")	Err	bitreich.org	70
i         if [ "$?" -ne 0 ]; then	Err	bitreich.org	70
i@@ -22,7 +50,7 @@ copy_files() {	Err	bitreich.org	70
i                 then	Err	bitreich.org	70
i                         printf 'Copying files:\n'	Err	bitreich.org	70
i                         find "${1}"/ -type f | cut -d '/' -f 2- | tee "${LIST}"	Err	bitreich.org	70
i-                        rsync -lD --files-from="${LIST}" "${1}/" "${2}":/	Err	bitreich.org	70
i+                        rsync --rsync-path="${EXEC} rsync" -lD --files-from="${LIST}" "${1}/" "${2}":/	Err	bitreich.org	70
i                         rm "$LIST"	Err	bitreich.org	70
i                 fi	Err	bitreich.org	70
i         fi	Err	bitreich.org	70
i@@ -34,11 +62,11 @@ remote_script() {	Err	bitreich.org	70
i         if [ -f "${1}" ]	Err	bitreich.org	70
i         then	Err	bitreich.org	70
i                 printf 'Executing script\n'	Err	bitreich.org	70
i-                ssh "${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-                    "$DRIST" ;	Err	bitreich.org	70
i-                    rm "$DRIST"' < "$1"	Err	bitreich.org	70
i+                ssh "${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+                    rm \$DRIST" < "$1"	Err	bitreich.org	70
i         fi	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -54,7 +82,7 @@ delete_files() {	Err	bitreich.org	70
i                         printf 'Removing files:\n' 	Err	bitreich.org	70
i                         find "$1" -type f | sed 's/"/\\&/' | \	Err	bitreich.org	70
i                                 awk -v path="${1}" '{ printf "\"%s\" ",substr($0,length(path)+1)}' > "${LIST}"	Err	bitreich.org	70
i-                        test -s "$LIST" && ssh "$2" "rm -v $(cat $LIST)"	Err	bitreich.org	70
i+                        test -s "$LIST" && ssh "$2" "${EXEC} rm -v $(cat $LIST)"	Err	bitreich.org	70
i                 fi	Err	bitreich.org	70
i         fi	Err	bitreich.org	70
i }	Err	bitreich.org	70
1diff --git a/drist.1 b/drist.1	/scm/drist/file/drist.1.gph	bitreich.org	70
i@@ -6,7 +6,18 @@	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 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 s	Err	bitreich.org	70
i+use a program to execute a command as root on the remote server.	Err	bitreich.org	70
i+Default is sudo.	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+.Op Fl e Ar binary	Err	bitreich.org	70
i+binary to use for executing the commands as root.	Err	bitreich.org	70
i+This flag is only useful when used with	Err	bitreich.org	70
i+.Fl s .	Err	bitreich.org	70
i+	Err	bitreich.org	70
i .Sh DESCRIPTION	Err	bitreich.org	70
i .Nm	Err	bitreich.org	70
i is a tool to configure remote servers using	Err	bitreich.org	70
i@@ -14,8 +25,7 @@ is a tool to configure remote servers using	Err	bitreich.org	70
i and	Err	bitreich.org	70
i .Xr rsync 1 .	Err	bitreich.org	70
i .Nm	Err	bitreich.org	70
i-has been designed to be simple, so it may not offer all the features	Err	bitreich.org	70
i-you want.	Err	bitreich.org	70
i+has been designed to be simple, so it may not offer all the features you want.	Err	bitreich.org	70
i .Pp	Err	bitreich.org	70
i When you run	Err	bitreich.org	70
i .Nm	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/drist/commit/c9735fd7d912dbca...
Content-Typetext/plain; charset=utf-8