Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #Thanks locsemege
- ext=("001" "[pP][aA][rR][tT]*.[rR][aA][rR]" "[rR][aA][rR]")
- ext_to_delete=("[0-9][0-9][0-9]" "[pP][aA][rR][tT]*.[rR][aA][rR]" "[r-zR-Z][aA0-9][rR0-9]")
- error="$(mktemp)"
- extracted=0
- extract_it() {
- local filename=""
- for i in $(seq ${#ext[@]}); do
- filename="${1%.${ext[i-1]}}"
- if [ "$filename" != "$1" ]; then
- break
- else
- filename=""
- fi
- done
- if [ "$filename" = "" ]; then
- return 0
- fi
- echo "Extracting $1..."
- unrar x -y "$1" 1>/dev/null 2>$error
- if [ ! -s $error ]; then
- ((extracted++))
- rm -f "$filename.sfv"
- rm -f "$filename."${ext_to_delete[i-1]}
- if [ -f "$filename.bin" ]; then
- echo "Converting..."
- bchunk "$filename.bin" "$filename.cue" "$filename" 1>/dev/null 2>$error
- if [ ! -f "${filename}02.cdr" ]; then
- rm -f "$filename.bin" "$filename.cue"
- mv "${filename}01.iso" "$filename.iso"
- else
- rm -f "${filename}01.iso"
- rm "$filename"[0-9][0-9]".cdr"
- echo "$filename.bin can't convert to .iso, it conains audio tracks!"
- fi
- fi
- else
- cat "$error" 2>/dev/null
- fi
- }
- do_it() {
- if [ -z "$1" ]; then
- for f in * ; do
- if [ "$f" != ".." ] ; then
- if cd "$f" 2>/dev/null; then
- do_it
- cd ..
- elif [ -f "$f" ]; then
- extract_it "$f"
- fi
- fi
- done
- else
- extract_it "$1"
- fi
- }
- do_it "$1"
- case $extracted in
- 0)
- echo "Nothing to extract"
- ;;
- 1)
- echo "1 archive extraxted"
- ;;
- *)
- echo "$extracted archives extraxted"
- ;;
- esac
- echo Done
- cat "$error" 2>/dev/null
- rm -f "$error"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement