43 lines
1.4 KiB
Text
43 lines
1.4 KiB
Text
![]() |
#!/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')"
|
||
|
}
|
||
|
|