get_source_date_epoch.sh 693 B

123456789101112131415161718192021222324252627282930313233
  1. #!/usr/bin/env bash
  2. export LANG=C
  3. export LC_ALL=C
  4. if [ -n "$TOPDIR" ]; then
  5. cd "$TOPDIR" || exit 1
  6. fi
  7. try_version() {
  8. [ -f version.date ] || return 1
  9. SOURCE_DATE_EPOCH="$(cat version.date)"
  10. [ -n "$SOURCE_DATE_EPOCH" ]
  11. }
  12. try_git() {
  13. [ -e .git ] || return 1
  14. SOURCE_DATE_EPOCH="$(git log -1 --format=format:%ct)"
  15. [ -n "$SOURCE_DATE_EPOCH" ]
  16. }
  17. try_hg() {
  18. [ -d .hg ] || return 1
  19. SOURCE_DATE_EPOCH="$(hg log --template '{date}' -l 1 | cut -d. -f1)"
  20. [ -n "$SOURCE_DATE_EPOCH" ]
  21. }
  22. try_mtime() {
  23. SOURCE_DATE_EPOCH=$(perl -e 'print((stat $ARGV[0])[9])' "$0")
  24. [ -n "$SOURCE_DATE_EPOCH" ]
  25. }
  26. try_version || try_git || try_hg || try_mtime || SOURCE_DATE_EPOCH=""
  27. echo "$SOURCE_DATE_EPOCH"