#!/bin/bash

set -eu
set -o pipefail

all_present=True

for file in "$@"
do
    if ! [ -e "$file" ]
    then
        echo "$file does not exist"
        all_present=False
        continue
    fi
done

function sans_failed
{
    filename="$1"
    case "$filename" in
        *.failed)
            # shellcheck disable=SC2001
            result=$(echo "$1" | sed 's#\.failed$##')
            ;;
        *.rip-output)
            # shellcheck disable=SC2001
            result=$(echo "$1" | sed 's#\.rip-output$##')
            ;;
        *.rip-output.xz)
            # shellcheck disable=SC2001
            result=$(echo "$1" | sed 's#\.rip-output\.xz$##')
            ;;
        *)
            result="$filename"
            ;;
    esac
    echo "$result"
}

case "$all_present" in
    True)
        for file in "$@"
        do
            rm "$file"
            file2=$(sans_failed "$file")
            if [ -e "$file2".views ]
            then
                rm "$file2".views
            fi
            if [ -e "$file2".rip-output.xz ]
            then
                rm "$file2".rip-output.xz
            fi
            if [ -e "$file2".rip-output ]
            then
                rm "$file2".rip-output
            fi
        done
        ;;
    False)
        echo "$0: One or more files nonexistent" 1>&2
        exit 1
        ;;
    *)
        echo "$0: \$all_present has a strange value: $all_present" 1>&2
        exit 1
        ;;
esac