Compare commits

..

4 commits

2 changed files with 31 additions and 5 deletions

View file

@ -6,7 +6,8 @@ zusammenführt. Metadaten (Autor, Serie, Titel, Jahr, Sprecher:in) werden aus
der Ordnerstruktur extrahiert und als Tags gesetzt. Die Ergebnisse werden unter der Ordnerstruktur extrahiert und als Tags gesetzt. Die Ergebnisse werden unter
`out/` abgelegt. `out/` abgelegt.
> Das Skript startet `m4b-tool` über Nix (`nix run github:sandreas/m4b-tool#m4b-tool-libfdk`). > Das Skript startet `m4b-tool` über docker (`docker run -it --rm -u $(id -u):$(id -g) -v "$(pwd)":/mnt sandreas/m4b-tool:latest`) oder
> Nix (`nix run github:sandreas/m4b-tool#m4b-tool-libfdk`).
## Inhaltsverzeichnis ## Inhaltsverzeichnis
@ -28,7 +29,7 @@ der Ordnerstruktur extrahiert und als Tags gesetzt. Die Ergebnisse werden unter
## Voraussetzungen ## Voraussetzungen
- Nix installiert (für den Aufruf von `m4b-tool` via `nix run`) - Nix oder docker installiert (für den Aufruf von `m4b-tool` via `docker run` oder `nix run`)
- AudioQuellen in unterstützten Formaten: `mp3`, `m4a`, `m4b`, `aac`, `flac`, `wav`, `ogg` - AudioQuellen in unterstützten Formaten: `mp3`, `m4a`, `m4b`, `aac`, `flac`, `wav`, `ogg`
- Bash (unter macOS/Linux vorhanden) - Bash (unter macOS/Linux vorhanden)

View file

@ -4,11 +4,12 @@ set -eufo pipefail
# CONSTANTS # CONSTANTS
declare -r script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" declare -r script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
declare -a m4b_tool_bin
# VARS # VARS
LEADING_ZEROES=2 LEADING_ZEROES=2
SRC="${script_dir}/src" SRC=""
OUT="${script_dir}/out" OUT=""
# FUNCTIONS # FUNCTIONS
parse-vars() { parse-vars() {
@ -178,7 +179,7 @@ m4b-merge() {
fi fi
args+=("--output-file=${output_file}" -- "${source_dir}") args+=("--output-file=${output_file}" -- "${source_dir}")
nix run github:sandreas/m4b-tool#m4b-tool-libfdk -- "${args[@]}" "${m4b_tool_bin[@]}" "${args[@]}"
} }
main() { main() {
@ -225,4 +226,28 @@ main() {
fi fi
} }
# Argument parser: select backend (docker|nix) and set paths
case "${1-}" in
nix)
m4b_tool_bin=(nix run github:sandreas/m4b-tool#m4b-tool-libfdk --)
SRC="${script_dir}/src"
OUT="${script_dir}/out"
shift
;;
docker|"")
m4b_tool_bin=(docker run -it --rm -u $(id -u):$(id -g) -v "$(pwd)":/mnt sandreas/m4b-tool:latest)
SRC="./src"
OUT="./out"
[[ "${1-}" == docker ]] && shift || true
;;
-h|--help)
echo "Usage: $0 [docker|nix]" >&2
exit 0
;;
*)
echo "Unknown mode '$1'. Use 'docker' or 'nix'." >&2
exit 2
;;
esac
main "$@" main "$@"