git-ls-files(1) is plumbing command, its output will never change regardless of configuration, version. git-status(1) output will be changed depends on configuration. At least, 986d4dbc7d (common/environment/setup/git.sh: ensure untracked files are checked., 2017-11-24) was added to address a different output on `status.showUntrackedFiles`. By doing this, also reduce a pipe, and a fork-exec. Technically, git-log(1) is also a porcelain, but I _think_ `%ct` is stable enough to stay there. If the day has come, that `git-log(1)` can be replaced with: git cat-file commit HEAD | sed -ne '/^committer/{s/.* \([0-9]*\) [-+][0-9][0-9][0-9][0-9]$/\1/p;q}'
18 lines
665 B
Bash
18 lines
665 B
Bash
# If XBPS_USE_BUILD_MTIME is enabled in conf file don't continue.
|
||
# only run this, if SOURCE_DATE_EPOCH isn't set.
|
||
|
||
if [ -z "$XBPS_GIT_CMD" ]; then
|
||
msg_error "BUG: environment/setup: XBPS_GIT_CMD is not set\n"
|
||
fi
|
||
|
||
if [ -n "$XBPS_USE_BUILD_MTIME" ]; then
|
||
unset SOURCE_DATE_EPOCH
|
||
elif [ -z "${SOURCE_DATE_EPOCH}" -a -n "$IN_CHROOT" ]; then
|
||
# check if the template is under version control:
|
||
if [ -z "$($XBPS_GIT_CMD -C ${XBPS_SRCPKGDIR}/${basepkg} ls-files template)" ]; then
|
||
export SOURCE_DATE_EPOCH="$(stat -c %Y ${XBPS_SRCPKGDIR}/${basepkg}/template)"
|
||
else
|
||
export SOURCE_DATE_EPOCH="$($XBPS_GIT_CMD -C ${XBPS_DISTDIR} log --pretty='%ct' -n1 HEAD)"
|
||
fi
|
||
fi
|