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(-)
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)