summaryrefslogtreecommitdiffstats
path: root/tools/builder_common.sh
diff options
context:
space:
mode:
authorRenato Botelho <renato@netgate.com>2016-08-12 14:11:57 -0300
committerRenato Botelho <renato@netgate.com>2016-08-12 14:16:57 -0300
commit5163c3ca42631ed0905f335282c9daf570fd66b1 (patch)
treecd8e7a8c99be3af45d846eff8792e5c99ad60a50 /tools/builder_common.sh
parent820b17e1da57d6bfff248e50b4f839682cbc734c (diff)
downloadpfsense-5163c3ca42631ed0905f335282c9daf570fd66b1.zip
pfsense-5163c3ca42631ed0905f335282c9daf570fd66b1.tar.gz
Change build scripts to make it possible to rsync files to multiple locations
Diffstat (limited to 'tools/builder_common.sh')
-rw-r--r--tools/builder_common.sh132
1 files changed, 69 insertions, 63 deletions
diff --git a/tools/builder_common.sh b/tools/builder_common.sh
index f21a378..e3f9cb0 100644
--- a/tools/builder_common.sh
+++ b/tools/builder_common.sh
@@ -1621,59 +1621,63 @@ pkg_repo_rsync() {
return
fi
- # Make sure destination directory exist
- ssh -p ${PKG_RSYNC_SSH_PORT} \
- ${PKG_RSYNC_USERNAME}@${PKG_RSYNC_HOSTNAME} \
- "mkdir -p ${PKG_RSYNC_DESTDIR}"
-
- echo -n ">>> Sending updated repository to ${PKG_RSYNC_HOSTNAME}... " | tee -a ${_logfile}
- if script -aq ${_logfile} rsync -Have "ssh -p ${PKG_RSYNC_SSH_PORT}" \
- --timeout=60 --delete-delay ${_repo_path} \
- ${PKG_RSYNC_USERNAME}@${PKG_RSYNC_HOSTNAME}:${PKG_RSYNC_DESTDIR} >/dev/null 2>&1
- then
- echo "Done!" | tee -a ${_logfile}
- else
- echo "Failed!" | tee -a ${_logfile}
- echo ">>> ERROR: An error occurred sending repo to remote hostname"
- print_error_pfS
- fi
-
- if [ -z "${USE_PKG_REPO_STAGING}" -o -n "${_ignore_final_rsync}" ]; then
- return
- fi
-
- if [ -n "${_IS_RELEASE}" -o "${_repo_path_param}" = "${CORE_PKG_PATH}" ]; then
- # Send .real* directories first to prevent having a broken repo while transfer happens
- local _cmd="rsync -Have \"ssh -p ${PKG_FINAL_RSYNC_SSH_PORT}\" \
- --timeout=60 ${PKG_RSYNC_DESTDIR}/./${_repo_base%%-core}* \
- --include=\"/*\" --include=\"*/.real*\" --include=\"*/.real*/***\" \
- --exclude=\"*\" \
- ${PKG_FINAL_RSYNC_USERNAME}@${PKG_FINAL_RSYNC_HOSTNAME}:${PKG_FINAL_RSYNC_DESTDIR}"
-
- echo -n ">>> Sending updated packages to ${PKG_FINAL_RSYNC_HOSTNAME}... " | tee -a ${_logfile}
- if script -aq ${_logfile} ssh -p ${PKG_RSYNC_SSH_PORT} \
- ${PKG_RSYNC_USERNAME}@${PKG_RSYNC_HOSTNAME} ${_cmd} >/dev/null 2>&1; then
+ for _pkg_rsync_hostname in ${PKG_RSYNC_HOSTNAME}; do
+ # Make sure destination directory exist
+ ssh -p ${PKG_RSYNC_SSH_PORT} \
+ ${PKG_RSYNC_USERNAME}@${_pkg_rsync_hostname} \
+ "mkdir -p ${PKG_RSYNC_DESTDIR}"
+
+ echo -n ">>> Sending updated repository to ${_pkg_rsync_hostname}... " | tee -a ${_logfile}
+ if script -aq ${_logfile} rsync -Have "ssh -p ${PKG_RSYNC_SSH_PORT}" \
+ --timeout=60 --delete-delay ${_repo_path} \
+ ${PKG_RSYNC_USERNAME}@${_pkg_rsync_hostname}:${PKG_RSYNC_DESTDIR} >/dev/null 2>&1
+ then
echo "Done!" | tee -a ${_logfile}
else
echo "Failed!" | tee -a ${_logfile}
- echo ">>> ERROR: An error occurred sending repo to final hostname"
+ echo ">>> ERROR: An error occurred sending repo to remote hostname"
print_error_pfS
fi
- _cmd="rsync -Have \"ssh -p ${PKG_FINAL_RSYNC_SSH_PORT}\" \
- --timeout=60 --delete-delay ${PKG_RSYNC_DESTDIR}/./${_repo_base%%-core}* \
- ${PKG_FINAL_RSYNC_USERNAME}@${PKG_FINAL_RSYNC_HOSTNAME}:${PKG_FINAL_RSYNC_DESTDIR}"
+ if [ -z "${USE_PKG_REPO_STAGING}" -o -n "${_ignore_final_rsync}" ]; then
+ return
+ fi
- echo -n ">>> Sending updated repositories metadata to ${PKG_FINAL_RSYNC_HOSTNAME}... " | tee -a ${_logfile}
- if script -aq ${_logfile} ssh -p ${PKG_RSYNC_SSH_PORT} \
- ${PKG_RSYNC_USERNAME}@${PKG_RSYNC_HOSTNAME} ${_cmd} >/dev/null 2>&1; then
- echo "Done!" | tee -a ${_logfile}
- else
- echo "Failed!" | tee -a ${_logfile}
- echo ">>> ERROR: An error occurred sending repo to final hostname"
- print_error_pfS
+ if [ -n "${_IS_RELEASE}" -o "${_repo_path_param}" = "${CORE_PKG_PATH}" ]; then
+ for _pkg_final_rsync_hostname in ${PKG_FINAL_RSYNC_HOSTNAME}; do
+ # Send .real* directories first to prevent having a broken repo while transfer happens
+ local _cmd="rsync -Have \"ssh -p ${PKG_FINAL_RSYNC_SSH_PORT}\" \
+ --timeout=60 ${PKG_RSYNC_DESTDIR}/./${_repo_base%%-core}* \
+ --include=\"/*\" --include=\"*/.real*\" --include=\"*/.real*/***\" \
+ --exclude=\"*\" \
+ ${PKG_FINAL_RSYNC_USERNAME}@${_pkg_final_rsync_hostname}:${PKG_FINAL_RSYNC_DESTDIR}"
+
+ echo -n ">>> Sending updated packages to ${_pkg_final_rsync_hostname}... " | tee -a ${_logfile}
+ if script -aq ${_logfile} ssh -p ${PKG_RSYNC_SSH_PORT} \
+ ${PKG_RSYNC_USERNAME}@${_pkg_rsync_hostname} ${_cmd} >/dev/null 2>&1; then
+ echo "Done!" | tee -a ${_logfile}
+ else
+ echo "Failed!" | tee -a ${_logfile}
+ echo ">>> ERROR: An error occurred sending repo to final hostname"
+ print_error_pfS
+ fi
+
+ _cmd="rsync -Have \"ssh -p ${PKG_FINAL_RSYNC_SSH_PORT}\" \
+ --timeout=60 --delete-delay ${PKG_RSYNC_DESTDIR}/./${_repo_base%%-core}* \
+ ${PKG_FINAL_RSYNC_USERNAME}@${_pkg_final_rsync_hostname}:${PKG_FINAL_RSYNC_DESTDIR}"
+
+ echo -n ">>> Sending updated repositories metadata to ${_pkg_final_rsync_hostname}... " | tee -a ${_logfile}
+ if script -aq ${_logfile} ssh -p ${PKG_RSYNC_SSH_PORT} \
+ ${PKG_RSYNC_USERNAME}@${_pkg_rsync_hostname} ${_cmd} >/dev/null 2>&1; then
+ echo "Done!" | tee -a ${_logfile}
+ else
+ echo "Failed!" | tee -a ${_logfile}
+ echo ">>> ERROR: An error occurred sending repo to final hostname"
+ print_error_pfS
+ fi
+ done
fi
- fi
+ done
}
poudriere_possible_archs() {
@@ -2129,24 +2133,26 @@ snapshots_scp_files() {
pkg_repo_rsync "${CORE_PKG_PATH}"
snapshots_update_status ">>> Finished copying core pkg repo"
- snapshots_update_status ">>> Copying files to ${RSYNCIP}"
+ for _rsyncip in ${RSYNCIP}; do
+ snapshots_update_status ">>> Copying files to ${_rsyncip}"
- # Ensure directory(s) are available
- ssh ${RSYNCUSER}@${RSYNCIP} "mkdir -p ${RSYNCPATH}/installer"
- ssh ${RSYNCUSER}@${RSYNCIP} "mkdir -p ${RSYNCPATH}/nanobsd"
- if [ -d $IMAGES_FINAL_DIR/virtualization ]; then
- ssh ${RSYNCUSER}@${RSYNCIP} "mkdir -p ${RSYNCPATH}/virtualization"
- fi
- # ensure permissions are correct for r+w
- ssh ${RSYNCUSER}@${RSYNCIP} "chmod -R ug+rw ${RSYNCPATH}/."
- rsync $RSYNC_COPY_ARGUMENTS $IMAGES_FINAL_DIR/installer/* \
- ${RSYNCUSER}@${RSYNCIP}:${RSYNCPATH}/installer/
- rsync $RSYNC_COPY_ARGUMENTS $IMAGES_FINAL_DIR/nanobsd/* \
- ${RSYNCUSER}@${RSYNCIP}:${RSYNCPATH}/nanobsd/
- if [ -d $IMAGES_FINAL_DIR/virtualization ]; then
- rsync $RSYNC_COPY_ARGUMENTS $IMAGES_FINAL_DIR/virtualization/* \
- ${RSYNCUSER}@${RSYNCIP}:${RSYNCPATH}/virtualization/
- fi
+ # Ensure directory(s) are available
+ ssh ${RSYNCUSER}@${_rsyncip} "mkdir -p ${RSYNCPATH}/installer"
+ ssh ${RSYNCUSER}@${_rsyncip} "mkdir -p ${RSYNCPATH}/nanobsd"
+ if [ -d $IMAGES_FINAL_DIR/virtualization ]; then
+ ssh ${RSYNCUSER}@${_rsyncip} "mkdir -p ${RSYNCPATH}/virtualization"
+ fi
+ # ensure permissions are correct for r+w
+ ssh ${RSYNCUSER}@${_rsyncip} "chmod -R ug+rw ${RSYNCPATH}/."
+ rsync $RSYNC_COPY_ARGUMENTS $IMAGES_FINAL_DIR/installer/* \
+ ${RSYNCUSER}@${_rsyncip}:${RSYNCPATH}/installer/
+ rsync $RSYNC_COPY_ARGUMENTS $IMAGES_FINAL_DIR/nanobsd/* \
+ ${RSYNCUSER}@${_rsyncip}:${RSYNCPATH}/nanobsd/
+ if [ -d $IMAGES_FINAL_DIR/virtualization ]; then
+ rsync $RSYNC_COPY_ARGUMENTS $IMAGES_FINAL_DIR/virtualization/* \
+ ${RSYNCUSER}@${_rsyncip}:${RSYNCPATH}/virtualization/
+ fi
- snapshots_update_status ">>> Finished copying files."
+ snapshots_update_status ">>> Finished copying files."
+ done
}
OpenPOWER on IntegriCloud