File vendor-update.sh of Package etcd.36071
#!/usr/bin/bash
#
# Script to update the vendor tarball
# Author: Elisei Roca
#------------------------------------
set -eo pipefail
# set -x
NAME=etcd
STACK=("server" "etcdctl" "etcdutl")
VERSION=$(grep -oP '(?<=Version:)(.*)' etcd.spec | xargs)
[ ! -f "$NAME-$VERSION".tar.gz ] && echo "$NAME-$VERSION.tar.gz does not exist" && exit 1
echo "Updating vendor file..."
tempdir="$(mktemp -d --suffix=.etcd)"
function cleanup() {
rm -rf "${tempdir}"
}
trap cleanup EXIT
mkdir -p "${tempdir}/vendor"
tar --strip-components=1 -xvf "$NAME-$VERSION".tar.gz -C "${tempdir}" &> /dev/null
dir=$(pwd)
for item in ${STACK[*]}; do
mkdir "${tempdir}/vendor/${item}"
cd "${tempdir}/${item}"
go mod vendor
mv vendor/ ../vendor/"$item"
done
cd "$dir"
fdupes -r -1 "${tempdir}/vendor/" |
while read line; do
target="";
for file in ${line[*]}; do
if [ "x${target}" == "x" ]; then
target=$file;
else
ln -f "${target}" "${file}";
fi;
done;
done
tar -czvf vendor.tar.gz -C "${tempdir}" vendor &> /dev/null
echo "Repacked to vendor.tar.gz"