dam/src/db_update

33 lines
1.1 KiB
Bash

#!/bin/bash
# doc db_update {
#
# DESCRIPTION
# db_update - Updates TARGET's DB_FILE with defined IMAGEIDs
#
# USAGE
# db_update <path/to/git/dir> <path/to/target/dir> <path/to/db/file> <IMAGEID>
#
# }
db_update() {
local GIT_DIR="${1}"
local TARGET="${2}"
local DB_FILE="${3}"
local IMAGEID="${4}"
[[ -f "${DB_FILE}" ]] || touch "${DB_FILE}"
trackidList=($(awk 'BEGIN{FS="\" : \"";RS="\",\n * \""}{if($1=="TRACKID"){print $2}}' ${GIT_DIR}/${IMAGEID}.tags))
if [[ ! -f ${GIT_DIR}/${IMAGEID}.tags ]]; then
_msg ECHO "Removing ${IMAGEID} from database file"
gawk -i inplace -v imageid="${IMAGEID}" 'BEGIN{FS="\t";OFS="\t"}{if($2=imageid){$1="null"}{print $0}}' ${DB_FILE}
continue
fi
for trackid in ${trackidList[@]}; do
if [[ -z $(awk -v imageid="${IMAGEID}" -v trackid="${trackid}" 'BEGIN{FS="\t"}{if($2==imageid && $3==trackid){print $0}}' ${DB_FILE}) ]]; then
_msg ECHO "Adding ${trackid} of ${IMAGEID} to database file"
echo -e "true\t${IMAGEID}\t${trackid}\tnull" >> ${DB_FILE}
fi
done
return 0
}