47 lines
1015 B
Bash
47 lines
1015 B
Bash
|
#!/usr/bin/bash
|
||
|
#
|
||
|
# Script to update the vendor tarball
|
||
|
# Author: Elisei Roca
|
||
|
#------------------------------------
|
||
|
|
||
|
# 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..."
|
||
|
|
||
|
rm -rf /tmp/"$NAME" ||:
|
||
|
mkdir -p /tmp/"$NAME"/vendor
|
||
|
|
||
|
tar --strip-components=1 -xvf "$NAME-$VERSION".tar.gz -C /tmp/"$NAME" &> /dev/null
|
||
|
|
||
|
dir=$(pwd)
|
||
|
for item in ${STACK[*]}; do
|
||
|
mkdir /tmp/"$NAME"/vendor/"$item"
|
||
|
cd /tmp/"$NAME/$item"
|
||
|
go mod vendor
|
||
|
mv vendor/ ../vendor/"$item"
|
||
|
done
|
||
|
cd "$dir"
|
||
|
|
||
|
fdupes -r -1 /tmp/"$NAME"/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 /tmp/"$NAME" vendor &> /dev/null
|
||
|
rm -rf /tmp/"$NAME" ||:
|
||
|
|
||
|
echo "Repacked to vendor.tar.gz"
|