From a08ffe34ce5de5b1684da8dbe19cc3712378014c Mon Sep 17 00:00:00 2001 From: caem Date: Tue, 14 May 2024 12:26:00 +0200 Subject: [PATCH] Fix character escaping in file paths Files are now quoted with ' instead of " now as to avoid more edge cases that come from using quotation marks. Now only ' have to be escaped in the item paths. --- flac2opus_collection.bash | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/flac2opus_collection.bash b/flac2opus_collection.bash index 7bb4ec8..d959bc4 100755 --- a/flac2opus_collection.bash +++ b/flac2opus_collection.bash @@ -153,15 +153,15 @@ iterate_dirs() { local total_count="$3" count="$ref_count" for item in "$dir"/*; do - item="${item/\$/"\\$"}" + local item="$(echo "$item" | sed "s/'/'\\\\'/g")" if [ -f "$item" ]; then new_file="${item/"$INPUT_DIR"/"$OUTPUT_DIR"}" - new_file="${new_file/".flac"/".ogg"}" if [ ! -f "$new_file" ]; then if [[ "$item" == *".flac" ]]; then ((count+=1)) + new_file="${new_file/".flac"/".ogg"}" conversions+=("printf '[%s/%s] \e[92m%s\e[0m -> \e[93m%s\e[0m\n' $count $total_count \ - \"$item\" \"$new_file\" && ffmpeg -hide_banner -loglevel error -i \"$item\" -c:a libopus -vbr \"$VBR\" -b:a \"$BITRATE\" \"$new_file\" > /dev/null") + '$item' '$new_file' && ffmpeg -hide_banner -loglevel error -i '$item' -c:a libopus -vbr \"$VBR\" -b:a \"$BITRATE\" '$new_file' > /dev/null") else new_dir=$(dirname "${item/"$INPUT_DIR"/"$OUTPUT_DIR"}") if [ ! -d "$new_dir" ]; then @@ -194,6 +194,6 @@ main () { iterate_dirs "$INPUT_DIR" "count" "$total_count" } -set -e +# set -e main "$@"