23fd4e65ba
Add a fallback case to get_source_date_epoch.sh which reports the modification time of the script itself in case there is no SCM information available, e.g. when downloading .tar.gz or .zip tarballs produced by Github. Also fix the mercurial case while we're at it. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
31 lines
649 B
Bash
Executable File
31 lines
649 B
Bash
Executable File
#!/usr/bin/env bash
|
|
export LANG=C
|
|
export LC_ALL=C
|
|
[ -n "$TOPDIR" ] && cd $TOPDIR
|
|
|
|
try_version() {
|
|
[ -f version.date ] || return 1
|
|
SOURCE_DATE_EPOCH="$(cat version.date)"
|
|
[ -n "$SOURCE_DATE_EPOCH" ]
|
|
}
|
|
|
|
try_git() {
|
|
[ -e .git ] || return 1
|
|
SOURCE_DATE_EPOCH="$(git log -1 --format=format:%ct)"
|
|
[ -n "$SOURCE_DATE_EPOCH" ]
|
|
}
|
|
|
|
try_hg() {
|
|
[ -d .hg ] || return 1
|
|
SOURCE_DATE_EPOCH="$(hg log --template '{date}' -l 1 | cut -d. -f1)"
|
|
[ -n "$SOURCE_DATE_EPOCH" ]
|
|
}
|
|
|
|
try_mtime() {
|
|
perl -e 'print((stat $ARGV[0])[9])' "$0"
|
|
[ -n "$SOURCE_DATE_EPOCH" ]
|
|
}
|
|
|
|
try_version || try_git || try_hg || try_mtime || SOURCE_DATE_EPOCH=""
|
|
echo "$SOURCE_DATE_EPOCH"
|