From 50f4e6759f5865ce04f847e588f51f4621cadd5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=BE=E6=B5=A6=20=E7=9F=A5=E4=B9=9F=20Matsuura=20Tomoy?= =?UTF-8?q?a?= Date: Thu, 8 Feb 2024 18:01:27 +0900 Subject: [PATCH] add timestamp script --- add_timestamp.sh | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100755 add_timestamp.sh diff --git a/add_timestamp.sh b/add_timestamp.sh new file mode 100755 index 00000000..8ba00975 --- /dev/null +++ b/add_timestamp.sh @@ -0,0 +1,29 @@ +#!/bin/bash +#別のマシンで作ったファイルはわからんので、それぞれのでやって古い方で上書きする必要がある +cwd=`dirname "${0}"` +FILES=$(find $cwd/content -name "*.md") +IFS=$'\n' +for f in $FILES +do +BDATE=$(stat -f "%SB" "$f"); +FLINE=$(head -n 1 "$f"); +if [[ "$FLINE" == "---" ]]; +then +echo "$f has frontmatter"; +ORIGINDATE=$(yq --front-matter=extract '.date' "$f" | date "+%s") +LOCALDATE=$(LC_ALL=C date -j -f "%b %d %H:%M:%S %Y" "$BDATE" | date "+%s"); + +if [ $LOCALDATE -lt $ORIGINDATE ]; then # -lt : '<' + echo "date of local file is older. overwriting." + DATE=$(LC_ALL=C date -j -Iseconds -f "%b %d %H:%M:%S %Y" "$BDATE"); + echo "$f : $DATE" + echo $DATE | xargs -I{} yq -i --front-matter="process" '.date="{}"' "$f" +fi +else +echo "$f has no frontmatter, adding"; +gsed -i '1i---\n---' "$f" +DATE=$(LC_ALL=C date -j -Iseconds -f "%b %d %H:%M:%S %Y" "$BDATE"); +echo "$f : $DATE" +echo $DATE | xargs -I{} yq -i --front-matter="process" '.date="{}"' "$f" +fi +done \ No newline at end of file