From c3acf30c669f206e8d3ada523cf626f66e7d40ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Kucharczyk?= Date: Wed, 16 Nov 2022 11:44:25 +0100 Subject: [PATCH] Fix adding hashes, add file_by_filename --- tag.sh | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/tag.sh b/tag.sh index 49f9d8d..dc1b7df 100755 --- a/tag.sh +++ b/tag.sh @@ -161,12 +161,13 @@ add_path() { add_hash() { # $FILE $HASH - TABLE="hashes" - COLUMN="fid,md5" + local TABLE="hashes" + local COLUMN="fid,md5" local FILENAME="${1:-}" [ -z "$FILENAME" ] && fail "No file specified." - ! file_exists_in_db "$FILENAME" && fail "File \"$FILENAME\" does not exist in database." - sqlite_insert_multi "$TABLE" "$COLUMN" $RESULT "'$2'" + local FID=$(file_by_filename "$FILENAME") + [[ "$FID" -eq 0 ]] && fail "File \"$FILENAME\" does not exist in database." + sqlite_insert_multi "$TABLE" "$COLUMN" $FID "'$2'" } add_path_auto() { @@ -187,16 +188,23 @@ tag_exists_in_db() { file_exists_in_db() { # $FILENAME - local FILENAME=$(basename "${1:-}") - local FILEPATH=$(dirname "${1:-}") - local RESULT=$(sqlite_query "SELECT id FROM files WHERE filename = '$FILENAME' AND path = '$FILEPATH'") - if [[ -z "$RESULT" ]]; then + local RESULT=$(file_by_filename "$1") + if [[ "$RESULT" -eq 0 ]]; then return 1 else return 0 fi } +file_by_filename() { + # FILENAME + local FILENAME=$(basename "${1:-}") + local FILEPATH=$(realpath $(dirname "${1:-}")) + local RESULT=0 + RESULT=$(sqlite_query "SELECT id FROM files WHERE filename = '$FILENAME' AND path = '$FILEPATH'") + echo $RESULT +} + dbfile_exists() { if [[ ! -f "$DB_FILE" ]]; then return 1