diff --git a/bin/Makefile b/bin/Makefile index 0c98bbd..fbc7f5c 100644 --- a/bin/Makefile +++ b/bin/Makefile @@ -14,8 +14,8 @@ PREFIX = $(HOME) MANPREFIX = $(PREFIX)/local -BIN = ZZZ browser credentials fetch imgresize invidious rfcopen \ - screenshot sekrit tor-browser w3m-copy-link xsekrit +BIN = ZZZ browser credentials fetch flac2ogg imgresize invidious \ + rfcopen screenshot sekrit tor-browser w3m-copy-link xsekrit MAN1 = sekrit.1 all: $(BIN) diff --git a/bin/flac2ogg.sh b/bin/flac2ogg.sh new file mode 100644 index 0000000..b7f13ff --- /dev/null +++ b/bin/flac2ogg.sh @@ -0,0 +1,54 @@ +#!/bin/sh +# flac2ogg +# Written in 2019 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 +# . + +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 "$1" ] || err "Missing file \"$1\"." + convert_to_ogg "$flac" || rc=$? + done + else + for flac in *.flac; do + [ -f "$flac" ] || continue + convert_to_ogg "$flac" || rc=$? + done + fi +else + while read -r flac; do + [ -f "$1" ] || err "Missing file \"$1\"." + convert_to_ogg "$flac" || rc=$? + done +fi +exit $rc