From f43c1d433ad730d493076ea60f94a4e865cc2717 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Kucharczyk?= Date: Wed, 16 Nov 2022 09:39:47 +0100 Subject: [PATCH] Check if files exist before doing stuff --- tag.sh | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/tag.sh b/tag.sh index 0db0f28..fbe902c 100755 --- a/tag.sh +++ b/tag.sh @@ -59,8 +59,10 @@ listtags() { [ -z "$1" ] && fail "No filename supplied." FILENAME="$1" shift - LIMIT="${1:-0}" + ! file_exists_in_db "$FILENAME" && fail "File '$FILENAME' does not exist in database." + + LIMIT="${1:-0}" ADDITIONAL_QUERY="" [ $LIMIT -gt 0 ] && ADDITIONAL_QUERY="LIMIT $LIMIT" @@ -145,6 +147,9 @@ add_path() { # $PATH1..$PATHN TABLE="files" COLUMN="filename" + for FILE in "$@"; do + file_exists_in_db "$FILE" && fail "File '$FILENAME' already exists in database." + done sqlite_insert_single "$TABLE" "$COLUMN" "$@" } @@ -154,8 +159,7 @@ add_hash() { COLUMN="fid,md5" local FILENAME="${1:-}" [ -z "$FILENAME" ] && fail "No file specified." - RESULT=$(sqlite_query "SELECT id FROM files WHERE filename = '$FILENAME'") - [ -z "$RESULT" ] && fail "File \"$FILENAME\" does not exist in database." + ! file_exists_in_db "$FILENAME" && fail "File \"$FILENAME\" does not exist in database." sqlite_insert_multi "$TABLE" "$COLUMN" $RESULT "'$2'" } @@ -175,6 +179,17 @@ tag_exists_in_db() { fi } +file_exists_in_db() { + # $FILENAME + FILENAME=${1:-} + RESULT=$(sqlite_query "SELECT id FROM files WHERE filename = '$FILENAME'") + if [[ -z "$RESULT" ]]; then + return 1 + else + return 0 + fi +} + main() { [ -z "${1:-}" ] && fail "Usage: tag init/add/import/autoimport/list/listtags" @@ -219,8 +234,9 @@ main() { if [[ "$1" = "tag" ]]; then shift - [ -z "$1" ] && fail "No filename supplied." + [ -z "${1:-}" ] && fail "No filename supplied." FILENAME="$1" + ! file_exists_in_db "$FILENAME" && fail "File '$FILENAME' does not exist in database." shift [ -z "${1:-}" ] && fail "No tag supplied." COUNTER=0