]> granicus.if.org Git - strace/blob - file-date-gen
tests: fix build with recent kernel headers
[strace] / file-date-gen
1 #! /bin/sh
2
3 if [ "$1" = "-f" ]; then
4         shift
5         DATE_FORMAT="$1"
6         shift
7 fi
8
9 : ${FILE:=$1}
10 : ${DATE_FILE:=$(dirname "$FILE")/.$(basename "${FILE}").date}
11 : ${DEFAULT_DATE:=$2}
12 : ${DATE_FORMAT:=%Y-%m-%d}
13 LC_TIME=C; export LC_TIME
14
15 date=
16
17 [ -n "${FILE}" ] || {
18         echo >&2 "$0 $(dirname "$0")/file [$(dirname "$0")/file.date [DEFAULT_DATE]]"
19         exit 1
20 }
21
22 [ -f "${DATE_FILE}" ] && date="$(cat "${DATE_FILE}")"
23
24 [ -n "${date}" ] ||
25         date="$(git log -n 1 --format=format:%cD --no-patch "${FILE}")"
26
27 [ -n "${date}" ] ||
28         date="${DEFAULT_DATE}"
29
30 [ -n "${date}" ] ||
31         [ -z "${SOURCE_DATE_EPOCH-}" ] ||
32         date="$(date -u -d "@${SOURCE_DATE_EPOCH}")"
33
34 [ -n "${date}" ] ||
35         date="$(date -u)"
36
37 [ -n "${date}" ] || {
38         echo >&2 'Undefined date.'
39         exit 1
40 }
41
42 exec printf "%s" $(date -u "+${DATE_FORMAT}" -d "${date}")