aboutsummaryrefslogtreecommitdiff
path: root/common/hooks/pre-pkg
diff options
context:
space:
mode:
Diffstat (limited to 'common/hooks/pre-pkg')
-rw-r--r--common/hooks/pre-pkg/90-set-timestamps.sh26
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"
+}