diff --git a/to-m4b.sh b/to-m4b.sh index 4e8a39d..2345486 100755 --- a/to-m4b.sh +++ b/to-m4b.sh @@ -4,12 +4,12 @@ set -eufo pipefail # CONSTANTS declare -r script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -declare -ra m4b_tool_bin=(nix run github:sandreas/m4b-tool#m4b-tool-libfdk --) +declare -a m4b_tool_bin # VARS LEADING_ZEROES=2 -SRC="${script_dir}/src" -OUT="${script_dir}/out" +SRC="" +OUT="" # FUNCTIONS parse-vars() { @@ -226,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 "$@"