#!/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