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"