added --new functionality with keybnding
This commit is contained in:
47
src/main.sh
47
src/main.sh
@@ -105,6 +105,13 @@ EOF
|
||||
EOF
|
||||
)
|
||||
export AWK_UPDATE
|
||||
|
||||
AWK_NEW=$(
|
||||
cat <<'EOF'
|
||||
@@include src/awk/new.awk
|
||||
EOF
|
||||
)
|
||||
export AWK_NEW
|
||||
### END OF AWK SCRIPTS
|
||||
|
||||
## Colors
|
||||
@@ -302,10 +309,33 @@ if [ -z "${WEEKLY_DATA_FILE:-}" ]; then
|
||||
fi
|
||||
|
||||
if [ "${1:-}" = "--new" ]; then
|
||||
# todo: implement
|
||||
env >/dev/tty
|
||||
echo "$*" >/dev/tty
|
||||
read -r tmp
|
||||
collection=$(echo "$COLLECTION_LABELS" | tr ';' '\n' | $FZF --delimiter='=' --with-nth=2 --accept-nth=1)
|
||||
fpath=""
|
||||
while [ -f "$fpath" ] || [ -z "$fpath" ]; do
|
||||
uuid=$($UUIDGEN)
|
||||
fpath="$ROOT/$collection/$uuid.ics"
|
||||
done
|
||||
startsec=$(date -d "$2" +"%s")
|
||||
endsec=$((startsec + 3600))
|
||||
start=$(__canonical_datetime_hm "$startsec")
|
||||
end=$(__canonical_datetime_hm "$endsec")
|
||||
filetmp=$(mktemp --suffix='.md')
|
||||
(
|
||||
echo "::: |> $start"
|
||||
echo "::: <| $end"
|
||||
echo "# <!-- write summary here -->"
|
||||
echo ""
|
||||
) >"$filetmp"
|
||||
checksum=$(cksum "$filetmp")
|
||||
$EDITOR "$filetmp" >/dev/tty
|
||||
|
||||
# Update only if changes are detected
|
||||
if [ "$checksum" != "$(cksum "$filetmp")" ]; then
|
||||
filenew="$filetmp.ics"
|
||||
awk -v uid="$uuid" "$AWK_NEW" "$filetmp" >"$filenew"
|
||||
mv "$filenew" "$fpath"
|
||||
fi
|
||||
rm "$filetmp"
|
||||
fi
|
||||
|
||||
if [ "${1:-}" = "--preview" ]; then
|
||||
@@ -358,8 +388,10 @@ if [ "${1:-}" = "--day" ]; then
|
||||
end=$(echo "$line" | cut -d '|' -f 3)
|
||||
fpath=$(echo "$line" | cut -d '|' -f 4 | sed "s/ /|/g")
|
||||
if [ "$key" = "ctrl-n" ]; then
|
||||
# TODO: Go on add entry for hour
|
||||
echo "Add entry for hour $hour"
|
||||
if echo "$hour" | grep ":"; then
|
||||
hour="$DAY_START"
|
||||
fi
|
||||
exec $0 --new "$DISPLAY_DATE $hour:00"
|
||||
elif [ -n "$fpath" ]; then
|
||||
fpath="$ROOT/$fpath"
|
||||
__edit "$start" "$end" "$fpath"
|
||||
@@ -410,8 +442,7 @@ sign=$(echo "$line" | cut -d '|' -f 1)
|
||||
startdate=$(echo "$line" | cut -d '|' -f 2)
|
||||
if [ "$key" = "ctrl-n" ]; then
|
||||
# Add new
|
||||
echo "NOT IMPLEMENTED: Add wrt $line"
|
||||
exit
|
||||
exec $0 --new "$startdate $DAY_START:00"
|
||||
fi
|
||||
if [ -z "$key" ] && [ -z "$line" ]; then
|
||||
rm "$WEEKLY_DATA_FILE" "$APPROX_DATA_FILE"
|
||||
|
Reference in New Issue
Block a user