mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2024-10-19 14:08:17 +02:00
The short git hash suffix printed by getver.sh is taken from the latest local commit, change this to use the hash from latest upstream commit if available. This is considered the intended behavior based on commit message a642a11faca87e2a7bddc1fadb54253e2fc26e84, introducing getver.sh. Signed-off-by: Magnus Kroken <mkroken@gmail.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
60 lines
1.4 KiB
Bash
Executable File
60 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
export LANG=C
|
|
export LC_ALL=C
|
|
[ -n "$TOPDIR" ] && cd $TOPDIR
|
|
|
|
GET_REV=$1
|
|
|
|
try_version() {
|
|
[ -f version ] || return 1
|
|
REV="$(cat version)"
|
|
[ -n "$REV" ]
|
|
}
|
|
|
|
try_git() {
|
|
REBOOT=ee53a240ac902dc83209008a2671e7fdcf55957a
|
|
git rev-parse --git-dir >/dev/null 2>&1 || return 1
|
|
|
|
[ -n "$GET_REV" ] || GET_REV="HEAD"
|
|
|
|
case "$GET_REV" in
|
|
r*)
|
|
GET_REV="$(echo $GET_REV | tr -d 'r')"
|
|
BASE_REV="$(git rev-list ${REBOOT}..HEAD | wc -l | awk '{print $1}')"
|
|
REV="$(git rev-parse HEAD~$((BASE_REV - GET_REV)))"
|
|
;;
|
|
*)
|
|
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
|
|
ORIGIN="$(git rev-parse --verify --symbolic-full-name ${BRANCH}@{u} 2>/dev/null)"
|
|
[ -n "$ORIGIN" ] || ORIGIN="$(git rev-parse --verify --symbolic-full-name master@{u} 2>/dev/null)"
|
|
REV="$(git rev-list ${REBOOT}..$GET_REV | wc -l | awk '{print $1}')"
|
|
|
|
if [ -n "$ORIGIN" ]; then
|
|
UPSTREAM_BASE="$(git merge-base $GET_REV $ORIGIN)"
|
|
UPSTREAM_REV="$(git rev-list ${REBOOT}..$UPSTREAM_BASE | wc -l | awk '{print $1}')"
|
|
else
|
|
UPSTREAM_REV=0
|
|
fi
|
|
|
|
if [ "$REV" -gt "$UPSTREAM_REV" ]; then
|
|
REV="${UPSTREAM_REV}+$((REV - UPSTREAM_REV))"
|
|
fi
|
|
|
|
REV="${REV:+r$REV-$(git log -n 1 --format="%h" $UPSTREAM_BASE)}"
|
|
|
|
;;
|
|
esac
|
|
|
|
[ -n "$REV" ]
|
|
}
|
|
|
|
try_hg() {
|
|
[ -d .hg ] || return 1
|
|
REV="$(hg log -r-1 --template '{desc}' | awk '{print $2}' | sed 's/\].*//')"
|
|
REV="${REV:+r$REV}"
|
|
[ -n "$REV" ]
|
|
}
|
|
|
|
try_version || try_git || try_hg || REV="unknown"
|
|
echo "$REV"
|