env/bin/flac2ogg.sh

55 lines
1.1 KiB
Bash

#!/bin/sh
# flac2ogg
# Written in 2019-2020 by Lucas
# CC0 1.0 Universal/Public domain - No rights reserved
#
# To the extent possible under law, the author(s) have dedicated all
# copyright and related and neighboring rights to this software to the
# public domain worldwide. This software is distributed without any
# warranty. You should have received a copy of the CC0 Public Domain
# Dedication along with this software. If not, see
# <http://creativecommons.org/publicdomain/zero/1.0/>.
err()
{
printf "%s: %s\n" "${0##*/}" "$*" >&2
exit 1
}
convert_to_ogg()
{
ogg=${1%.flac}.ogg
printf "Converting %s ..." "$1"
oggenc -Q -q 7 -o "$ogg" "$1"
rc=$?
if [ $rc -ne 0 ]; then
echo " FAIL"
else
echo " OK"
fi
return $rc
}
rc=0
if [ -t 0 ]; then
if [ $# -gt 0 ]; then
for flac in "$@"; do
[ -f "$flac" ] || err "$flac: not found"
convert_to_ogg "$flac" || rc=$?
done
else
for flac in *.flac; do
[ -f "$flac" ] || continue
convert_to_ogg "$flac" || rc=$?
done
fi
else
while IFS= read -r flac; do
[ -f "$flac" ] || err "$flac: not found"
convert_to_ogg "$flac" || rc=$?
done
fi
exit $rc