X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=scripts%2Fget_source_date_epoch.sh;h=d122acf385326b18da4ac0be7a442c2f8c2d0806;hb=5fc28ef47959c1256f2553d507224bb481b08494;hp=ea8d930109ad00e2cbff2054e2369745993008b6;hpb=fa69553900516944fc43cf7b377105ea1f6d3db0;p=openwrt%2Fopenwrt.git diff --git a/scripts/get_source_date_epoch.sh b/scripts/get_source_date_epoch.sh index ea8d930109..d122acf385 100755 --- a/scripts/get_source_date_epoch.sh +++ b/scripts/get_source_date_epoch.sh @@ -1,25 +1,35 @@ #!/usr/bin/env bash export LANG=C export LC_ALL=C -[ -n "$TOPDIR" ] && cd $TOPDIR + +if [ -n "$TOPDIR" ]; then + cd "$TOPDIR" || exit 1 +fi + +SOURCE="${1:-.}" try_version() { - [ -f version.date ] || return 1 - SOURCE_DATE_EPOCH="$(cat version.date)" + [ -f "$SOURCE/version.date" ] || return 1 + SOURCE_DATE_EPOCH=$(cat "$SOURCE/version.date") [ -n "$SOURCE_DATE_EPOCH" ] } try_git() { - [ -e .git ] || return 1 - SOURCE_DATE_EPOCH="$(git log -1 --format=format:%ct)" + SOURCE_DATE_EPOCH=$(git -C "$SOURCE" log -1 --format=format:%ct \ + "$SOURCE" 2>/dev/null) [ -n "$SOURCE_DATE_EPOCH" ] } try_hg() { - [ -d .hg ] || return 1 - SOURCE_DATE_EPOCH="" + SOURCE_DATE_EPOCH=$(hg --cwd "$SOURCE" log --template '{date}' -l 1 \ + "$SOURCE" 2>/dev/null | cut -d. -f1) + [ -n "$SOURCE_DATE_EPOCH" ] +} + +try_mtime() { + SOURCE_DATE_EPOCH=$(perl -e 'print((stat $ARGV[0])[9])' "$0") [ -n "$SOURCE_DATE_EPOCH" ] } -try_version || try_git || try_hg || SOURCE_DATE_EPOCH="" +try_version || try_git || try_hg || try_mtime || SOURCE_DATE_EPOCH="" echo "$SOURCE_DATE_EPOCH"