diff options
Diffstat (limited to 'common/hooks/pre-pkg')
-rw-r--r-- | common/hooks/pre-pkg/90-set-timestamps.sh | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/common/hooks/pre-pkg/90-set-timestamps.sh b/common/hooks/pre-pkg/90-set-timestamps.sh new file mode 100644 index 00000000000..a60a90f1ddf --- /dev/null +++ b/common/hooks/pre-pkg/90-set-timestamps.sh @@ -0,0 +1,26 @@ +# This hook executes the following tasks: +# - sets the timestamps in a package to the commit date + +hook() { + local GIT_CMD date basepkg + + # If XBPS_USE_GIT_COMMIT_DATE is disabled in conf file don't continue. + if [ -z $XBPS_USE_GIT_COMMIT_DATE ]; then + return + fi + + if command -v chroot-git &>/dev/null; then + GIT_CMD=$(command -v chroot-git) + elif command -v git &>/dev/null; then + GIT_CMD=$(command -v git) + else + msg_error "$pkgver: cannot find chroot-git or git utility, exiting...\n" + fi + basepkg=$pkgname + if [ -L "${XBPS_SRCPKGDIR}/$basepkg" ]; then + basepkg=$(readlink "${XBPS_SRCPKGDIR}/$basepkg") + fi + date=$($GIT_CMD -C ${XBPS_SRCPKGDIR}/${basepkg} log --pretty='%ci' --date=iso -n1 .) + msg_normal "$pkgver: setting mtimes to %s\n" "$(date --date "$date")" + find $PKGDESTDIR -print0 | xargs -0 touch --date "$date" +} |