| #!/bin/sh |
| |
| # Copyright 2019 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # This script gets an estimate for the time of the most recent commit from the |
| # integration repo. This is used at runtime as a known-good lower bound on what |
| # the current time is for cases in which the clock hasn't yet been updated from |
| # the network. |
| # |
| # We do this by taking the CommitDate of the most recent commit from the |
| # integration repo. Unlike commits in other repositories, the commits in the |
| # integration repo are always created by server infrastructure, and thus their |
| # CommitDate fields are more reliable. This is critical since a backstop time |
| # which is erroneously in the future could break many applications. |
| |
| set -eu |
| |
| INTEGRATION="$1" |
| OUTPUT="$2" |
| UNIX_OUTPUT="$3" |
| |
| # Set the following options to make the output as stable as possible: |
| # - GIT_CONFIG_NOSYSTEM=1 - Don't check /etc/gitconfig |
| # - --date=iso-strict-local - Format date as a strict ISO 8601-format timestamp |
| # - TZ=UTC - Set the local timezone to UTC; when paired with the |
| # "-local" suffix to "iso-strict", which tells Git to |
| # use the local timezone, it has the effect of |
| # formatting the time in the UTC timezone |
| # - --format=%cd - Print the CommitDate field only, respecting the |
| # formatting given by the --date flag |
| GIT_CONFIG_NOSYSTEM=1 TZ=UTC git --git-dir="$INTEGRATION"/.git log --date=iso-strict-local --format=%cd -n 1 > "$OUTPUT" |
| GIT_CONFIG_NOSYSTEM=1 TZ=UTC git --git-dir="$INTEGRATION"/.git log --date=unix --format=%cd -n 1 > "$UNIX_OUTPUT" |