#!/bin/sh
# Given a flac file on $1 convert it to an opus file without losing
# any metadata; deleting the original.

set -e

flac="$1"
opus="${flac%%.flac}.opus"

if [ -z "$1" ]; then
	echo "Convert flac to opus preserving metadata; usage: flac2opus file.flac"
	echo "To convert a whole directory:"
	echo "    find . -name '*.flac' -exec flac2opus {} \;"
	exit 1
fi

if [ -f "$opus" ]; then
	printf "Error: opus file %s already exists!\n" "$opus"
	exit 1
else
	echo "Converting to opus: $flac"
	cover="$(mktemp -u /tmp/flac2opus_cover.XXX.jpg)"
	# ffmpeg doesn't suport transcoding opus covers for some reason
	ffmpeg -loglevel error -i "$flac" -an -vcodec copy "$cover" \
		|| echo "Error: original flac doesn't contain cover art"
	ffmpeg -loglevel error -i "$flac" "$opus"
	[ -f "$cover" ] && opustags --in-place --set-cover "$cover" "$opus"
	rm -f "$flac" "$cover"
fi


