Add mercurial auto update support

This commit is contained in:
BtbN 2022-07-13 14:45:44 +02:00
parent 20ef083828
commit 801aa94c0e

View file

@ -18,12 +18,14 @@ echo "Processing ${scr}"
REPO_VAR="SCRIPT_REPO$i"
COMMIT_VAR="SCRIPT_COMMIT$i"
REV_VAR="SCRIPT_REV$i"
HGREV_VAR="SCRIPT_HGREV$i"
BRANCH_VAR="SCRIPT_BRANCH$i"
TAGFILTER_VAR="SCRIPT_TAGFILTER$i"
CUR_REPO="${!REPO_VAR}"
CUR_COMMIT="${!COMMIT_VAR}"
CUR_REV="${!REV_VAR}"
CUR_HGREV="${!HGREV_VAR}"
CUR_BRANCH="${!BRANCH_VAR}"
CUR_TAGFILTER="${!TAGFILTER_VAR}"
@ -45,6 +47,20 @@ echo "Processing ${scr}"
echo "Updating ${scr}"
sed -i "s/^${REV_VAR}=.*/${REV_VAR}=\"${NEW_REV}\"/" "${scr}"
fi
elif [[ -n "${CUR_HGREV}" ]]; then # HG
hg init tmphgrepo
trap "rm -rf tmphgrepo" EXIT
cd tmphgrepo
NEW_HGREV="$(hg in -f -n -l 1 "${CUR_REPO}" | grep changeset | cut -d: -f3 | xargs)"
cd ..
rm -rf tmphgrepo
echo "Got ${NEW_HGREV} (current: ${CUR_HGREV})"
if [[ "${NEW_HGREV}" != "${CUR_HGREV}" ]]; then
echo "Updating ${scr}"
sed -i "s/^${HGREV_VAR}=.*/${HGREV_VAR}=\"${NEW_HGREV}\"/" "${scr}"
fi
elif [[ -n "${CUR_COMMIT}" ]]; then # GIT
if [[ -n "${CUR_TAGFILTER}" ]]; then
NEW_COMMIT="$(git -c 'versionsort.suffix=-' ls-remote --exit-code --tags --refs --sort "v:refname" "${CUR_REPO}" "refs/tags/${CUR_TAGFILTER}" | tail -n1 | cut -d/ -f3- | xargs)"