Skip to content

Instantly share code, notes, and snippets.

@slickplaid
Created December 20, 2024 03:36
Show Gist options
  • Save slickplaid/fda98a84ad95741ac42bb5c94ca7fa4a to your computer and use it in GitHub Desktop.
Save slickplaid/fda98a84ad95741ac42bb5c94ca7fa4a to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
set -Eeo pipefail
trap cleanup SIGINT SIGTERM ERR EXIT
script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P)
cleanup() {
trap - SIGINT SIGTERM ERR EXIT
# script cleanup here
}
setup_colors() {
if [[ -t 2 ]] && [[ -z "${NO_COLOR-}" ]] && [[ "${TERM-}" != "dumb" ]]; then
NOFORMAT='\033[0m' RED='\033[0;31m' GREEN='\033[0;32m' ORANGE='\033[0;33m' BLUE='\033[0;34m' PURPLE='\033[0;35m' CYAN='\033[0;36m' YELLOW='\033[1;33m'
else
NOFORMAT='' RED='' GREEN='' ORANGE='' BLUE='' PURPLE='' CYAN='' YELLOW=''
fi
}
msg() {
echo >&2 -e "${1-}"
}
die() {
local msg=$1
local code=${2-1} # default exit status 1
msg "$msg"
exit "$code"
}
setup_colors
declare -A file_map
file_map["77ffba1c63ffaeb994b88f8822de1ba5dadc1bfb6fe93b61c2620a54d3e12f4d.mkv"]="Star.Trek.TNG.S05E01.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["5a744f3fefb6dce12bbd3713d1854f6a336f49447d062217a25fcecf99c1724b.mkv"]="Star.Trek.TNG.S05E02.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["1ea1671b188d9608f0c0f375db511efceb465b8fe445aaf3b19fb0442a74a1df.mkv"]="Star.Trek.TNG.S05E03.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["f058bbe059d29c4a87593aef21d11674013be0dec208db9d9e63358ab3553c51.mkv"]="Star.Trek.TNG.S05E04.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["2daeba9a07144f8380a1b1ac74075ad97496e383673a02ab479ef59b6c236456.mkv"]="Star.Trek.TNG.S05E05.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["1bdce8d90e55b33daf9f102133e8c8aeefea9e475298c34592914dbbdeee624d.mkv"]="Star.Trek.TNG.S05E06.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["8bd1305522ebec763bac3fce795b68639238b84f744847e5c9d2c506a5f1d0d2.mkv"]="Star.Trek.TNG.S05E07.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["51d8b190f94f8c2b9cadff99002669fe07e3459f1d72643a4a212654b6853ce8.mkv"]="Star.Trek.TNG.S05E08.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["065c860ffec737dc84903f8dda3a5ee137aa2612faecde5647b8d1159348ed15.mkv"]="Star.Trek.TNG.S05E09.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["80ffb1825d549737efb7a0e639166e0a1015610b8808056bdd1ddda28fbfcf35.mkv"]="Star.Trek.TNG.S05E10.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["380b6b373c409a89ed58860109d40e86dd04b92a69e574ca17a08805cdbe0868.mkv"]="Star.Trek.TNG.S05E11.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["d76499251faec4b904cdf396a7b34aa3af4290d1c804778d0f9c35d233846544.mkv"]="Star.Trek.TNG.S05E12.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["8d99932cb3e100d4f96643dbd67cda64dd91ed3ccd99b273454e1ff52c21caa5.mkv"]="Star.Trek.TNG.S05E13.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["e348d73f5d5f017e8022946ebab6a060e6096c7ee0c067581cf502c02c1cc5a4.mkv"]="Star.Trek.TNG.S05E14.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["a2611a494827e713e80a70660ad9bcb70cce0abcd109de04cafa6da2983a906c.mkv"]="Star.Trek.TNG.S05E15.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["29e9e785918dfe4cf66e3ab1a2111236983fa7930c770acf17f9542da5d10b92.mkv"]="Star.Trek.TNG.S05E16.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["22fc7c9d2e88a4ec44a05fb56ca11c059b93546edcb51e042696b7f685293466.mkv"]="Star.Trek.TNG.S05E17.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["8130c9c32dda5ed6a6b6099ccde6e3b645e363bdc3cf38a7ea2a8ce864a1b97f.mkv"]="Star.Trek.TNG.S05E18.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["cb35da026cdcf8ebc1101b5d47cf0da295a2828948240a6d62a0241f5612ebcd.mkv"]="Star.Trek.TNG.S05E19.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["1533dccad26a857136ea4c8d0bb35d6d3f177f4b2baecb6b3a7e43e517e213dd.mkv"]="Star.Trek.TNG.S05E20.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["7197c4589ae545229befd34110bd0cfe1163385bf366f36092754d47358361e0.mkv"]="Star.Trek.TNG.S05E21.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["e3d24d5038fb4fc1583301dcd75ad557c3c2b7a6ba3c7f4ae34fce9afc31e90c.mkv"]="Star.Trek.TNG.S05E22.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["74e43600de17d827e106db55350c0102151fa89fe6849819eae2aefc87ed1ab1.mkv"]="Star.Trek.TNG.S05E23.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["4c07e30872132c4349296640ffbff0ac831e0d069cda3783a08d7a95377cac94.mkv"]="Star.Trek.TNG.S05E24.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["656e711627f3dc8199f18ef9ff98c37b09da0d39a8ed1841151bcddd179c66c3.mkv"]="Star.Trek.TNG.S05E25.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
file_map["c9e08aaa3fce7094f82f1a99d4ad9e50cb0d184f232bafb7a13837347ac0e588.mkv"]="Star.Trek.TNG.S05E26.BluRay.1080p.AV1.OPUS.5.1-UH.mkv"
rename_files() {
local rename="$1"
while read -d '' -r path; do
base="${path##*/}"
[[ -n $file_map[$base] ]] || continue
dest=${file_map["$base"]}
[[ "$dest" ]] || continue
if [[ -z "$rename" ]]; then
msg "${GREEN}[FOUND]${NOFORMAT} $base -> $dest"
else
mv -v "$base" "$dest"
fi
done < <(find . -type f -name '*.mkv' -print0)
}
rename_files ""
read -r -p "Rename the above files? [y/N] " response
case "$response" in
[yY][eE][sS]|[yY])
rename_files "true"
;;
*)
exit
;;
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment