make.sh: Rewrite uploadsrc with rsync

Message ID 20211020174637.2688-1-michael.tremer@ipfire.org
State Accepted
Commit dbd455ef936277aae9cf4d7d7294f0ceca495b84
Headers
Series make.sh: Rewrite uploadsrc with rsync |

Commit Message

Michael Tremer Oct. 20, 2021, 5:46 p.m. UTC
  Instead of having a very dodgy diff of filelists, this rsync call does
everything automatically and only requires authentication once.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
---
 make.sh | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)
  

Patch

diff --git a/make.sh b/make.sh
index d9e560cf0..4a5442b8a 100755
--- a/make.sh
+++ b/make.sh
@@ -1903,24 +1903,24 @@  gettoolchain)
 	fi
 	;;
 uploadsrc)
-	PWD=`pwd`
 	if [ -z $IPFIRE_USER ]; then
 		echo -n "You have to setup IPFIRE_USER first. See .config for details."
 		print_status FAIL
 		exit 1
 	fi
 
-	URL_SOURCE=$(grep URL_SOURCE lfs/Config | awk '{ print $3 }')
-	REMOTE_FILES=$(echo "ls -1" | sftp -C ${IPFIRE_USER}@${URL_SOURCE})
+	URL_SOURCE="$(awk '/^URL_SOURCE/ { print $3 }' lfs/Config)"
+
+	rsync \
+		--recursive \
+		--update \
+		--ignore-existing \
+		--progress \
+		--human-readable \
+		--exclude="toolchains/" \
+		"${BASEDIR}/cache/" \
+		"${IPFIRE_USER}@${URL_SOURCE}"
 
-	for file in ${BASEDIR}/cache/*; do
-		[ -d "${file}" ] && continue
-		grep -q "$(basename ${file})" <<<$REMOTE_FILES && continue
-		NEW_FILES="$NEW_FILES $file"
-	done
-	[ -n "$NEW_FILES" ] && scp -2 $NEW_FILES ${IPFIRE_USER}@${URL_SOURCE}
-	cd $BASEDIR
-	cd $PWD
 	exit 0
 	;;
 lang)