diff --git a/README.md b/README.md index 0341caa..aaf46b3 100644 --- a/README.md +++ b/README.md @@ -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 `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 @@ -28,7 +29,7 @@ der Ordnerstruktur extrahiert und als Tags gesetzt. Die Ergebnisse werden unter ## 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`) - Audio‑Quellen in unterstützten Formaten: `mp3`, `m4a`, `m4b`, `aac`, `flac`, `wav`, `ogg` - Bash (unter macOS/Linux vorhanden) diff --git a/to-m4b.sh b/to-m4b.sh index 540d0b0..2345486 100755 --- a/to-m4b.sh +++ b/to-m4b.sh @@ -4,11 +4,12 @@ set -eufo pipefail # CONSTANTS declare -r script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +declare -a m4b_tool_bin # VARS LEADING_ZEROES=2 -SRC="${script_dir}/src" -OUT="${script_dir}/out" +SRC="" +OUT="" # FUNCTIONS parse-vars() { @@ -178,7 +179,7 @@ m4b-merge() { fi args+=("--output-file=${output_file}" -- "${source_dir}") - nix run github:sandreas/m4b-tool#m4b-tool-libfdk -- "${args[@]}" + "${m4b_tool_bin[@]}" "${args[@]}" } main() { @@ -225,4 +226,28 @@ main() { 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 "$@"