dam/src/print_future_path

43 lines
1.4 KiB
Text
Raw Normal View History

#!/bin/bash
# doc print_target_path {
#
# DESCRIPTION
# Prints relative output path based on provided metadata TAGS. Expects input from print_meta
# function.
#
# USAGE
# print_target_path <output from print_meta>
#
# }
print_target_path() {
local TAGS="${@}"
local tagList=(GENRE COMPOSER ALBUM ARTIST PERFORMER DATE DISCNUMBER TOTALDISCS TRACKNUMBER TITLE)
for tag in ${tagList[@]}; do
CURTAG="$(awk -v field=${tag} 'BEGIN{RS=";";FS="="}{if($1==field){printf $2}}' <<< ${TAGS})"
eval local ${tag}='${CURTAG}'
done
[[ -z "${GENRE+x}" ]] && echo -n "${GENRE}/"
if [[ -z "${CONDUCTOR+x}" ]]; then
[[ -z "${COMPOSER+x}" ]] && echo -n "${COMPOSER}/"
[[ -z "${ALBUM+x}" ]] && echo -n "${ALBUM}/"
[[ -z "${ARTIST+x}" ]] && echo -n "${ARTIST}/"
[[ -z "${DATE+x}" ]] && echo -n "${DATE}"
if [[ -z "${DATE+x}" ]] && [[ -z "${PERFORMER+x}" ]]; then echo -n "-"; fi
[[ -z "${PERFORMER+x}" ]] && echo -n "${PERFORMER}/"
else
[[ -z "${ARTIST+x}" ]] && echo -n "${ARTIST}/"
[[ -z "${DATE+x}" ]] && echo -n "${DATE}"
if [[ -z "${DATE+x}" ]] && [[ -z "${ARTIST+x}" ]]; then echo -n "-"; fi
[[ -z "${ALBUM+x}" ]] && echo -n "${ALBUM}/\t"
fi
[[ ${TOTALDISCS} -gt 1 ]] && echo -n "${DISCNUMBER}."
printf "%02d" ${TRACKNUMBER}
echo -n " - $(sed 's|/|-|g' <<< ${TITLE} | sed 's|?||g')"
}