From 2dbe0b08c489b4d703f0762a30b055dcba5577c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Kucharczyk?= Date: Sat, 19 Nov 2022 00:05:08 +0100 Subject: [PATCH] Add tag -i / --interactive --- tag.sh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tag.sh b/tag.sh index 12e4896..8224322 100755 --- a/tag.sh +++ b/tag.sh @@ -297,6 +297,12 @@ main() { if [[ "$1" = "tag" ]]; then shift + if [[ "${1:-}" = "-i" || "${1:-}" = "--interactive" ]]; then + "$0" --db "$DB_FILE" tagfid \ + $(sqlite_query "SELECT id,filename,path FROM files" | fzf | xargs -I{} echo '{}' | awk -F'|' '{print $1}') \ + $(sqlite_query "SELECT label FROM tags" | fzf --multi | xargs -I{} echo '{}' | awk -F'|' '{print $1}') + exit 0 + fi [ -z "${1:-}" ] && fail "No filename supplied." FILENAME="$1" ! file_exists_in_db "$FILENAME" && fail "File '$FILENAME' does not exist in database." @@ -315,6 +321,24 @@ main() { exit 0 fi + if [[ "$1" = "tagfid" ]]; then + shift + [ -z "${1:-}" ] && fail "No file ID supplied." + local FID="$1" + shift + [ -z "${1:-}" ] && fail "No tag supplied." + COUNTER=0 + while true; do + LABEL="$1" + ! tag_exists_in_db "$LABEL" && fail "Tag '$TAG' does not exist in database." + shift + sqlite_query "INSERT INTO tags_ties (fid, tid) VALUES ($FID,(SELECT id FROM tags WHERE label = \"$LABEL\"))" + COUNTER=$((COUNTER++)) + [ -z "${1:-}" ] && break + done + exit 0 + fi + if [[ "$1" = "listtags" ]]; then [ -z "${2:-}" ] && { pod2usage "$0"; exit 1 ; } listtags "$2"