SMOLNET PORTAL home about changes
iAdd a simulate flag - 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 89768c14b72f90125d7e6803308458baf094aabc	/scm/drist/commit/89768c14b72f90125d7e6803308458baf094aabc.gph	bitreich.org	70
1parent c9735fd7d912dbca6e03c2725456d4eeb6d9487b	/scm/drist/commit/c9735fd7d912dbca6e03c2725456d4eeb6d9487b.gph	bitreich.org	70
hAuthor: Solene Rapenne <solene@perso.pw>	URL:mailto:solene@perso.pw	bitreich.org	70
iDate:   Thu, 29 Nov 2018 18:24:39 +0100	Err	bitreich.org	70
i	Err	bitreich.org	70
iAdd a simulate flag	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M drist                               |      42 +++++++++++++++++++++-----------	Err	bitreich.org	70
i  M drist.1                             |       8 ++++++++	Err	bitreich.org	70
i	Err	bitreich.org	70
i2 files changed, 36 insertions(+), 14 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@@ -6,8 +6,9 @@ usage() {	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+while getopts nse: 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                 *) usage ;;	Err	bitreich.org	70
i@@ -32,7 +33,7 @@ fi	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" "uname -n")	Err	bitreich.org	70
i+        HOSTNAME=$(ssh "$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@@ -48,9 +49,12 @@ copy_files() {	Err	bitreich.org	70
i                 LIST=$(mktemp /tmp/drist-rsync.XXXXXXXXXX)	Err	bitreich.org	70
i                 if [ -f "$LIST" ]	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 --rsync-path="${EXEC} rsync" -lD --files-from="${LIST}" "${1}/" "${2}":/	Err	bitreich.org	70
i+                        printf 'Copying files from folder "%s":\n' "$1"	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+                        fi	Err	bitreich.org	70
i                         rm "$LIST"	Err	bitreich.org	70
i                 fi	Err	bitreich.org	70
i         fi	Err	bitreich.org	70
i@@ -61,12 +65,15 @@ copy_files() {	Err	bitreich.org	70
i 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-                    ${EXEC} \$DRIST ;	Err	bitreich.org	70
i-                    rm \$DRIST" < "$1"	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+                            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         fi	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -79,10 +86,17 @@ delete_files() {	Err	bitreich.org	70
i                 LIST=$(mktemp /tmp/drist-rsync.XXXXXXXXXX)	Err	bitreich.org	70
i                 if [ -f "$LIST" ]	Err	bitreich.org	70
i                 then	Err	bitreich.org	70
i-                        printf 'Removing files:\n' 	Err	bitreich.org	70
i+                        printf 'Removing files from folder "%s":\n' "$1" 	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" "${EXEC} rm -v $(cat $LIST)"	Err	bitreich.org	70
i+                                awk -v path="${1}" '{ printf "\"%s\" ",substr($0,length(path)+1)}' | \	Err	bitreich.org	70
i+                                tee "${LIST}" | sed 's/^/        /'	Err	bitreich.org	70
i+                        printf '\n' # add a new line	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+                        fi	Err	bitreich.org	70
i+                        rm $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,9 +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 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 n	Err	bitreich.org	70
i+to simulate.	Err	bitreich.org	70
i+Tells 	Err	bitreich.org	70
i+.Nm	Err	bitreich.org	70
i+to show what will happens if it runs.	Err	bitreich.org	70
i+This will make a ssh connection to check the remote hostname.	Err	bitreich.org	70
i+	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
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/drist/commit/89768c14b72f9012...
Content-Typetext/plain; charset=utf-8