44 lines
1.4 KiB
Bash
Executable File
44 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Copyright (c) HashiCorp, Inc.
|
|
# SPDX-License-Identifier: BUSL-1.1
|
|
|
|
|
|
csource="${BASH_SOURCE[0]}"
|
|
while [ -h "$csource" ] ; do csource="$(readlink "$csource")"; done
|
|
root="$( cd -P "$( dirname "$csource" )/../" && pwd )"
|
|
|
|
. "${root}/.ci/load-ci.sh"
|
|
|
|
export PATH="${PATH}:${root}/.ci"
|
|
|
|
pushd "${root}" > "${output}"
|
|
|
|
if [ "${repo_name}" = "vagrant" ]; then
|
|
remote_repository="hashicorp/vagrant-acceptance"
|
|
else
|
|
fail "This repository is not configured to sync vagrant to mirror repository"
|
|
fi
|
|
|
|
wrap git config pull.rebase false \
|
|
"Failed to configure git pull strategy"
|
|
|
|
echo "Adding remote mirror repository '${remote_repository}'..."
|
|
wrap git remote add mirror "https://${HASHIBOT_USERNAME}:${HASHIBOT_TOKEN}@github.com/${remote_repository}" \
|
|
"Failed to add mirror '${remote_repository}' for sync"
|
|
|
|
echo "Updating configured remotes..."
|
|
wrap_stream git remote update mirror \
|
|
"Failed to update mirror repository (${remote_repository}) for sync"
|
|
|
|
rb=$(git branch -r --list "mirror/${ident_ref}")
|
|
|
|
if [ "${rb}" != "" ]; then
|
|
echo "Pulling ${ident_ref} from mirror..."
|
|
wrap_stream git pull mirror "${ident_ref}" \
|
|
"Failed to pull ${ident_ref} from mirror repository (${remote_repository}) for sync"
|
|
fi
|
|
|
|
echo "Pushing ${ident_ref} to mirror..."
|
|
wrap_stream git push mirror "${ident_ref}" \
|
|
"Failed to sync mirror repository (${remote_repository})"
|