Skip to content

Commit

Permalink
More helper script improvements.
Browse files Browse the repository at this point in the history
  • Loading branch information
WayneD committed Nov 5, 2024
1 parent 4490fb8 commit 4320c25
Show file tree
Hide file tree
Showing 2 changed files with 98 additions and 34 deletions.
99 changes: 65 additions & 34 deletions packaging/samba-rsync
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# This script makes it easy to update the ftp & html directories on the samba.org server.
# It expects the 2 *_DEST directories to contain updated files that need to be sent to
# the remote server. If these directories don't exist yet, they will be copied from the
Expand All @@ -22,26 +22,39 @@ case "$RSYNC_SAMBA_HOST" in
;;
esac

case "$1" in
f|-f|ftp|--ftp) MODE=ftp ;;
h|-h|html|--html) MODE=html ;;
'')
echo -n "Update ftp or html? "
read ans
case "$ans" in
f*) MODE=ftp ;;
h*) MODE=html ;;
*)
echo "Invalid answer." >&2
exit 1
;;
esac
;;
*)
echo "Invalid option: $1" >&2
exit 1
;;
esac
MODE=''
REVERSE=''
while (( $# )); do
case "$1" in
-R|--reverse) REVERSE=yes ;;
f|ftp) MODE=ftp ;;
h|html) MODE=html ;;
*)
echo "Invalid option: $1" >&2
exit 1
;;
-h|--help)
echo "Usage: [-R] [f|ftp|h|html]"
echo "-R --reverse Copy the files from the server to the local host."
echo "-h --help Output this help message."
exit
;;
esac
shift
done

if [ ! "$MODE" ]; then
echo -n "Update ftp or html? "
read ans
case "$ans" in
f*) MODE=ftp ;;
h*) MODE=html ;;
*)
echo "Invalid answer." >&2
exit 1
;;
esac
fi

if [ "$MODE" = ftp ]; then
SRC_DIR="$FTP_SRC"
Expand All @@ -53,33 +66,51 @@ else
FILT="filt"
fi

if [ ! -d "$SRC_DIR" ]; then
function do_rsync {
rsync --dry-run "${@}" | grep -v 'is uptodate$'
echo ''
echo -n "Run without --dry-run? [n] "
read ans
case "$ans" in
y*) rsync "${@}" | grep -v 'is uptodate$' ;;
esac
}

if [ -d "$SRC_DIR" ]; then
REVERSE_RSYNC=do_rsync
else
echo "The directory $SRC_DIR does not exist yet."
echo -n "Do you want to create it? [n] "
read ans
case "$ans" in
y*) ;;
*) exit 1 ;;
esac
OPTS='-aiv'
REVERSE=yes
REVERSE_RSYNC=rsync
fi

if [ "$REVERSE" = yes ]; then
OPTS='-aivOHP'
TMP_FILT="$SRC_DIR/tmp-filt"
echo "Copying files from $RSYNC_SAMBA_HOST to $SRC_DIR ..."
if [ "$MODE" = html ]; then
git clone "$HTML_GIT" "$SRC_DIR"
if [ $REVERSE_RSYNC = rsync ]; then
git clone "$HTML_GIT" "$SRC_DIR"
else
cd "$SRC_DIR" || exit 1
git pull
fi
sed -n -e 's/[-P]/H/p' "$SRC_DIR/$FILT" >"$TMP_FILT"
OPTS="${OPTS}f._$TMP_FILT"
else
OPTS="${OPTS}f:_$FILT"
fi
rsync "$OPTS" "$RSYNC_SAMBA_HOST:$DEST_DIR/" "$SRC_DIR/"
$REVERSE_RSYNC "$OPTS" "$RSYNC_SAMBA_HOST:$DEST_DIR/" "$SRC_DIR/"
rm -f "$TMP_FILT"
exit
fi

cd "$SRC_DIR" || exit 1
set -- -aivOHP --del -f._$FILT . "$RSYNC_SAMBA_HOST:$DEST_DIR/"

rsync --dry-run "${@}" | grep -v 'is uptodate$'
echo ''
echo -n "Run without --dry-run? [n] "
read ans
case "$ans" in
y*) rsync "${@}" | grep -v 'is uptodate$' ;;
esac
echo "Copying files from $SRC_DIR to $RSYNC_SAMBA_HOST ..."
do_rsync -aivOHP --del -f._$FILT . "$RSYNC_SAMBA_HOST:$DEST_DIR/"
33 changes: 33 additions & 0 deletions packaging/send-news
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/bin/bash -e

# This script expects the ~/src/rsync directory to contain the rsync
# source that has been updated. It also expects the auto-build-save
# directory to have been created prior to the running of configure so
# that each branch has its own build directory underneath. This supports
# the maintainer workflow for the rsync-patches files maintenace.

FTP_SRC="$HOME/samba-rsync-ftp"
FTP_DEST="/home/ftp/pub/rsync"
MD_FILES="README.md INSTALL.md NEWS.md"

case "$RSYNC_SAMBA_HOST" in
*.samba.org) ;;
*)
echo "You must set RSYNC_SAMBA_HOST in your environment to the samba hostname to use." >&2
exit 1
;;
esac

if [ ! -d "$FTP_SRC" ]; then
packaging/samba-rsync ftp # Ask to initialize the local ftp dir
fi

cd ~/src/rsync

make man
./md-convert --dest="$FTP_SRC" $MD_FILES
rsync -aiic $MD_FILES auto-build-save/master/*.?.html "$FTP_SRC"

cd "$FTP_SRC"

rsync -aiic README.* INSTALL.* NEWS.* *.?.html "$RSYNC_SAMBA_HOST:$FTP_DEST/"

0 comments on commit 4320c25

Please sign in to comment.