dam/src/import_dir

69 lines
2.2 KiB
Bash

#!/bin/bash
# doc import_dir {
#
# DESCRIPTION
# import_dir - Imports consolidated tracks into git repository
#
# USAGE
# import_dir </path/to/git/dir> </path/to/track/dir>
#
# DEPENDENCIES src/gen_mtag
#
# }
import_dir() {
local GIT_DIR="${1}"
local TRACK_DIR="${2}"
local SOURCE=FLAC
local trackList=($(find ${TRACK_DIR} -maxdepth 1 -name '*.flac' -printf '%p\n' | sort))
# Join trackList
_msg EXEC "Generating joined image"
gen_image "${TRACK_DIR}" $(printf "%s\t" ${trackList[@]}) > ${STDERR} 2>&1
local EXIT="$?"
[[ $? -eq 0 ]] && _msg OK || { _msg WARN; return 1; }
# Generates IMAGEID
_msg EXEC "Generating IMAGEID"
for track in ${trackList[@]}; do
local TRACK_EXT="$(basename ${track} | cut -d. -f2)"
[[ "${TRACK_EXT}" != "FLAC" ]] && SOURCE="${TRACK_EXT}"
done
local IMAGEID="SHA256-${SOURCE}--$(sha256sum "${TRACK_DIR}/joined.flac" | cut -d' ' -f1)"
_msg OK
# Generate metadata_trackList
local COUNT=0
for track in ${trackList[@]}; do
local TRACKID=$(metaflac --list --block-number=0 "${track}" | awk 'BEGIN{FS=": "}{if($1==" MD5 signature") {print $2}}')
local DURATION=$(soxi -D "${track}")
local metadata_trackList[${COUNT}]="$(print_meta_flac "${track}");DURATION=${DURATION};IMAGEID=${IMAGEID};TRACKID=${TRACKID};"
local COUNT=$(( ${COUNT} + 1 ))
done
# Generate cuesheet
_msg EXEC "Generating cue file"
gen_cue "${TRACK_DIR}" $(printf '%s\t' ${metadata_trackList[@]}) > "${GIT_DIR}/${IMAGEID}.cue"
local EXIT=$?
[[ $? -eq 0 ]] && _msg OK || { _msg WARN; return 1; }
add_bom "${GIT_DIR}/${IMAGEID}.cue"
# Generate tags file
_msg EXEC "Generating tags file"
gen_mtag $(printf '%s\t' ${metadata_trackList[@]}) > "${GIT_DIR}/${IMAGEID}.tags"
local EXIT=$?
[[ $? -eq 0 ]] && _msg OK || { _msg WARN; return 1; }
add_bom "${GIT_DIR}/${IMAGEID}.tags"
# Move joined.flac to GIT_DIR
mv "${TRACK_DIR}/joined.flac" "${GIT_DIR}/${IMAGEID}.flac"
# Generate cover images
gen_cover ${TRACK_DIR} > ${GIT_DIR}/${IMAGEID}.png
gen_small_cover ${TRACK_DIR} > ${GIT_DIR}/${IMAGEID}.jpg
return 0
}