summaryrefslogtreecommitdiff
path: root/mac/.local/bin/task/taskwarrior-tui/annotate-with-note
blob: c74431423f6799b5a21151c2d4e3c04fee2b7706 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/sh

# UUID of the task to annotate
uuid="$*"

# Base directory where notes are stored
notes_dir="$HOME/Private/repos/Obsidian/SI/Notes"

# List of subdirectories to search in
subdirs="areas meetings projects resources reviews"

# Construct the find command with the subdirectories
search_paths=""
for subdir in $subdirs; do
  search_paths="$search_paths $notes_dir/$subdir"
done

# Find files in the specified subdirectories and show fzf dialog to select an existing note
filepath=$(find "$search_paths" -type f -name '*.md' | fzf --preview "bat --color=always {}")

# If fzf was cancelled, exit the script
if [ -z "$filepath" ]; then
  echo "No file selected. Exiting."
  exit 1
fi

# Annotate the task with the selected filepath
task_output=$(task rc.bulk=0 rc.confirmation=off "$uuid" annotate "$filepath")

# Check if annotation was successful
case "$task_output" in
*"Annotated"*)
  echo "Successfully annotated the task with the note."
  ;;
*)
  echo "Failed to annotate the task."
  ;;
esac

# Open the selected note in nvim
${EDITOR:-nvim} "$filepath"