scripts: get_source_date_epoch.sh: fix mercurial support, add mtime fallback
authorJo-Philipp Wich <jo@mein.io>
Tue, 31 Jan 2017 06:50:29 +0000 (07:50 +0100)
committerJo-Philipp Wich <jo@mein.io>
Wed, 1 Feb 2017 23:13:50 +0000 (00:13 +0100)
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>
scripts/get_source_date_epoch.sh

index ea8d930109ad00e2cbff2054e2369745993008b6..84ba4454543982716cc7f488840975ae832da104 100755 (executable)
@@ -17,9 +17,14 @@ try_git() {
 
 try_hg() {
        [ -d .hg ] || return 1
-       SOURCE_DATE_EPOCH=""
+       SOURCE_DATE_EPOCH="$(hg log --template '{date}' -l 1 | cut -d. -f1)"
        [ -n "$SOURCE_DATE_EPOCH" ]
 }
 
-try_version || try_git || try_hg || 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"