From d1573b21a89c32ab0b6ade1c38641fcf6d1bac76 Mon Sep 17 00:00:00 2001 From: njucjc Date: Fri, 12 Dec 2025 03:08:57 +0800 Subject: [PATCH] fix(scripts/build): fix date formatting issue on different OS Signed-off-by: njucjc --- scripts/build/.variables | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/scripts/build/.variables b/scripts/build/.variables index d37c945893c6..53971216cc0d 100755 --- a/scripts/build/.variables +++ b/scripts/build/.variables @@ -13,13 +13,23 @@ PLATFORM=${PLATFORM:-} VERSION=${VERSION:-$(git describe --match 'v[0-9]*' --dirty='.m' --always --tags | sed 's/^v//' 2>/dev/null || echo "unknown-version" )} GITCOMMIT=${GITCOMMIT:-$(git rev-parse --short HEAD 2> /dev/null || true)} -if [ "$(uname)" = "Darwin" ]; then - # Using BSD date (macOS), which doesn't suppoort the --date option - # date -jf "" "" +"" (https://unix.stackexchange.com/a/86510) - BUILDTIME=${BUILDTIME:-$(TZ=UTC date -jf "%s" "${SOURCE_DATE_EPOCH:-$(date +%s)}" +"%Y-%m-%dT%H:%M:%SZ")} -else - # Using GNU date (Linux) - BUILDTIME=${BUILDTIME:-$(TZ=UTC date -u --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +"%Y-%m-%dT%H:%M:%SZ")} +# Try GNU date syntax first (Linux), fallback to BSD date syntax (macOS) if failed +BUILDTIME_SET=false +if [ -z "${BUILDTIME:-}" ]; then + # Try GNU date syntax + TZ=UTC date -u --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +"%Y-%m-%dT%H:%M:%SZ" >/dev/null 2>&1 && { + BUILDTIME=$(TZ=UTC date -u --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +"%Y-%m-%dT%H:%M:%SZ") + BUILDTIME_SET=true + } +fi + +if [ -z "${BUILDTIME:-}" ] && [ "$BUILDTIME_SET" = false ]; then + # Fallback to BSD date syntax + echo "GNU date syntax not supported, fallback to BSD date syntax" + TZ=UTC date -jf "%s" "${SOURCE_DATE_EPOCH:-$(date +%s)}" +"%Y-%m-%dT%H:%M:%SZ" >/dev/null 2>&1 && { + BUILDTIME=$(TZ=UTC date -jf "%s" "${SOURCE_DATE_EPOCH:-$(date +%s)}" +"%Y-%m-%dT%H:%M:%SZ") + BUILDTIME_SET=true + } fi case "$VERSION" in