update functionality

This commit is contained in:
2025-06-09 22:13:22 +02:00
parent 7ea35e539e
commit 801108c70c
2 changed files with 125 additions and 12 deletions

View File

@@ -93,6 +93,13 @@ EOF
EOF
)
export AWK_GET
AWK_UPDATE=$(
cat <<'EOF'
@@include src/awk/update.awk
EOF
)
export AWK_UPDATE
### END OF AWK SCRIPTS
## Colors
@@ -236,22 +243,31 @@ __list() {
# LC_ALL=c xargs -I {} date -d "{}" +"%a %e %b %Y"
}
__canonical_datetime_hm() {
s="$1"
t=$(date -d "@$s" +"%R")
dfmt="%F"
if [ "$t" != "00:00" ]; then
dfmt="$dfmt %R"
fi
date -d "@$s" +"$dfmt"
}
__canonical_datetime() {
s="$1"
shift
t=$(date -d "@$s" +"%R")
dfmt="$*%e %b %Y"
if [ "$t" != "00:00" ]; then
dfmt="$dfmt %Y %R %Z"
dfmt="$dfmt %R %Z"
fi
date -d "@$s" +"$dfmt"
}
__edit() {
start=$(__canonical_datetime "$1")
end=$(__canonical_datetime "$2")
start=$(__canonical_datetime_hm "$1")
end=$(__canonical_datetime_hm "$2")
fpath="$3"
# Use $start $end and $fpath
summary=$(awk -v field="SUMMARY" "$AWK_GET" "$fpath")
description=$(awk -v field="DESCRIPTION" "$AWK_GET" "$fpath")
filetmp=$(mktemp --suffix='.md')
@@ -267,12 +283,9 @@ __edit() {
# Update only if changes are detected
if [ "$checksum" != "$(cksum "$filetmp")" ]; then
# TODO: finish implementation
echo "going to update..."
read -r tmp
#file_new="$filetmp.ics"
#awk "$AWK_UPDATE" "$filetmp" "$file" >"$file_new"
#mv "$file_new" "$file"
filenew="$filetmp.ics"
awk "$AWK_UPDATE" "$filetmp" "$fpath" >"$filenew"
mv "$filenew" "$fpath"
fi
rm "$filetmp"
}
@@ -332,7 +345,6 @@ if [ "${1:-}" = "--day" ]; then
--accept-nth='1,2,3,4' \
--preview="$0 --preview {}" \
--bind="backspace:first+accept" \
--bind="ctrl-n:become($0 --new ${FZF_NTH:-})" \
--bind="ctrl-s:execute($SYNC_CMD ; printf 'Press <enter> to continue.'; read -r tmp)"
)
hour=$(echo "$selection" | cut -d '|' -f 1)
@@ -341,7 +353,6 @@ if [ "${1:-}" = "--day" ]; then
fpath=$(echo "$selection" | cut -d '|' -f 4 | sed "s/ /|/g")
if [ -n "$fpath" ]; then
fpath="$ROOT/$fpath"
# TODO: Go on edit file
__edit "$start" "$end" "$fpath"
elif [ -n "$hour" ]; then
# TODO: Go on add entry for hour