commit b2beb45f51937283857464611a49b6d462a964a4 parent 4992941882d7a93a4c4c1a611daa437955012b90 Author: awy <awy@awy.one> Date: Fri, 19 Dec 2025 21:02:43 +0300 notes script Diffstat:
| A | .local/bin/notes | | | 39 | +++++++++++++++++++++++++++++++++++++++ |
1 file changed, 39 insertions(+), 0 deletions(-)
diff --git a/.local/bin/notes b/.local/bin/notes @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +folder=$XDG_DATA_HOME/notes/ + +git-sync() { + git -C "$folder" add . + git -C "$folder" commit -m "$2: $1" >/dev/null 2>&1 + git -C "$folder" push >/dev/null 2>&1 +} + +newnote() { + dir="$(command ls -d "$folder" "$folder"*/ | mew -c -l 5 -i -p 'Choose directory: ')" || exit 0 + : "${dir:=$folder}" + name="$(echo "" | mew -c -sb "#a3be8c" -nf "#d8dee9" -p "Enter a name: " <&-)" || exit 0 + : "${name:=$(date +%F_%H-%M-%S)}" + setsid -fw "$TERMINAL" -e nvim "$dir$name.md" >/dev/null 2>&1 + git-sync "$name" "New note" +} + +selected() { + choice=$( + echo -e "New\n$(find "$folder" -type d -name .git -prune -o -type f -printf '%T@ %P\n' | sort -nr | cut -d' ' -f2-)" | mew -c -l 5 -i -p "Choose note or create new: " + ) + case $choice in + New) newnote ;; + *.md) + setsid -fw "$TERMINAL" -e nvim "$folder$choice" >/dev/null 2>&1 + git-sync "$choice" "Change note" + ;; + *) exit ;; + esac +} + +if ! err=$(git -C "$folder" pull --rebase 2>&1); then + notify-send "Notes" "Git pull failed $(echo "$err" | tail -n 5)" + exit 1 +fi + +selected