]> granicus.if.org Git - strace/commitdiff
Add script for generating date of the last commit for specific file
authorEugene Syromyatnikov <evgsyr@gmail.com>
Thu, 10 Aug 2017 18:39:29 +0000 (20:39 +0200)
committerEugene Syromyatnikov <evgsyr@gmail.com>
Thu, 10 Aug 2017 19:36:01 +0000 (21:36 +0200)
* file-date-gen: New auxiliary script.

file-date-gen [new file with mode: 0755]

diff --git a/file-date-gen b/file-date-gen
new file mode 100755 (executable)
index 0000000..610c281
--- /dev/null
@@ -0,0 +1,35 @@
+#! /bin/sh
+
+if [ "$1" = "-f" ]; then
+       shift
+       DATE_FORMAT="$1"
+       shift
+fi
+
+: ${FILE:=$1}
+: ${DATE_FILE:=$(dirname "$FILE")/.$(basename "${FILE}").date}
+: ${DEFAULT_DATE:=$2}
+: ${DATE_FORMAT:=%Y-%m-%d}
+
+date=
+
+[ -n "${FILE}" ] || {
+       echo >&2 "$0 $(dirname "$0")/file [$(dirname "$0")/file.date [DEFAULT_DATE]]"
+       exit 1
+}
+
+[ -f "${DATE_FILE}" ] && date="$(cat "${DATE_FILE}")"
+
+[ -n "${date}" ] ||
+       date="$(git log -n 1 --format=format:%cD --no-patch "${FILE}")"
+
+[ -n "${date}" ] || year="${DEFAULT_DATE}"
+
+[ -n "${date}" ] || date="$(date -u)"
+
+[ -n "${date}" ] || {
+       echo >&2 'Undefined date.'
+       exit 1
+}
+
+exec printf "%s" $(date "+${DATE_FORMAT}" -d "${date}")