Remove hardcoded db filename

Also prevent db files from getting tracked by git
This commit is contained in:
Lukáš Kucharczyk 2022-11-11 12:58:15 +01:00
parent 9f1eccdf1a
commit c1564178fa
Signed by: lukas
SSH Key Fingerprint: SHA256:vMuSwvwAvcT6htVAioMP7rzzwMQNi3roESyhv+nAxeg
2 changed files with 8 additions and 6 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*.db

13
tag.sh
View File

@ -7,6 +7,7 @@ set -ueo pipefail
# - tag $FILENAME $TAG - tag $FILENAME with $TAG, $TAG can be repeated # - tag $FILENAME $TAG - tag $FILENAME with $TAG, $TAG can be repeated
# - listtags $FILENAME - list all tags for $FILENAME # - listtags $FILENAME - list all tags for $FILENAME
DB_FILE="tags.db"
fail() { fail() {
echo "$1" >&2; echo "$1" >&2;
@ -16,7 +17,7 @@ fail() {
listtags() { listtags() {
[ -z "$1" ] && fail "No filename supplied." [ -z "$1" ] && fail "No filename supplied."
FILENAME="$1" FILENAME="$1"
sqlite3 -table tags.db "SELECT filename, label from files INNER JOIN tags_ties ON tags_ties.fid = files.fid INNER JOIN tags ON tags.tid = tags_ties.tid WHERE filename = \"$FILENAME\"" sqlite3 -table "$DB_FILE" "SELECT filename, label from files INNER JOIN tags_ties ON tags_ties.fid = files.fid INNER JOIN tags ON tags.tid = tags_ties.tid WHERE filename = \"$FILENAME\""
} }
if [[ "$1" = "add" ]]; then if [[ "$1" = "add" ]]; then
@ -29,25 +30,25 @@ if [[ "$1" = "add" ]]; then
while true; do while true; do
NEW_TAG="$1" NEW_TAG="$1"
shift shift
sqlite3 -table tags.db "INSERT INTO $TABLE ($COLUMN) VALUES (\"${NEW_TAG}\")" sqlite3 -table "$DB_FILE" "INSERT INTO $TABLE ($COLUMN) VALUES (\"${NEW_TAG}\")"
COUNTER=$((COUNTER++)) COUNTER=$((COUNTER++))
[ -z "${1:-}" ] && break [ -z "${1:-}" ] && break
done done
sqlite3 -table tags.db "SELECT * FROM \"$TABLE\" LIMIT $COUNTER" sqlite3 -table "$DB_FILE" "SELECT * FROM \"$TABLE\" LIMIT $COUNTER"
exit 0 exit 0
fi fi
if [[ "$1" = "list" ]]; then if [[ "$1" = "list" ]]; then
[ -z "$2" ] && fail "No table supplied." [ -z "$2" ] && fail "No table supplied."
TABLE_NAME="$2" TABLE_NAME="$2"
sqlite3 -table tags.db "SELECT * FROM \"${TABLE_NAME}\"" sqlite3 -table "$DB_FILE" "SELECT * FROM \"${TABLE_NAME}\""
exit 0 exit 0
fi fi
if [[ "$1" = "bytag" ]]; then if [[ "$1" = "bytag" ]]; then
[ -z "$2" ] && fail "No tag supplied." [ -z "$2" ] && fail "No tag supplied."
TAG_NAME="$2" TAG_NAME="$2"
sqlite3 -table tags.db "SELECT filename FROM files WHERE fid = (SELECT fid FROM tags_ties WHERE tid = (SELECT tid FROM tags WHERE label = \"${TAG_NAME}\"))" sqlite3 -table "$DB_FILE" "SELECT filename FROM files WHERE fid = (SELECT fid FROM tags_ties WHERE tid = (SELECT tid FROM tags WHERE label = \"${TAG_NAME}\"))"
exit 0 exit 0
fi fi
@ -60,7 +61,7 @@ if [[ "$1" = "tag" ]]; then
while true; do while true; do
LABEL="$1" LABEL="$1"
shift shift
sqlite3 -table tags.db "INSERT INTO tags_ties (fid, tid) VALUES ((SELECT fid FROM files WHERE filename = \"$FILENAME\"),(SELECT tid FROM tags WHERE label = \"$LABEL\"))" sqlite3 -table "$DB_FILE" "INSERT INTO tags_ties (fid, tid) VALUES ((SELECT fid FROM files WHERE filename = \"$FILENAME\"),(SELECT tid FROM tags WHERE label = \"$LABEL\"))"
[ -z "${1:-}" ] && break [ -z "${1:-}" ] && break
done done
listtags "$FILENAME" listtags "$FILENAME"