#!/bin/bash

self="$(basename "$0")"
version="beta-1.0.1"

VERBOSE=""  # Default: not verbose

# Check for --version or --verbose before shifting args
while [[ "$1" != "" ]]; do
    case "$1" in
        --version)
            echo "$self version $version"
            exit 0
            ;;
        --verbose)
            VERBOSE="--verbose"
            shift
            ;;
        *)
            break
            ;;
    esac
done

file="$1"
shift || true

if [[ -z "$file" ]]; then
    echo "❌ Usage: $self <source-file>"
    exit 1
fi

name="${file%.*}"
ext="${file##*.}"

# Accepted source file extensions
SOURCE_EXTS=("💩" "poop" "poo" "shit" "caca" "crap" "dung" "feces" "turd" "doo-doo" "💩💩" "💩💩💩" "💩💩💩💩" "dump" "dumpy")

find_real_source_file() {
    for alt in "${SOURCE_EXTS[@]}"; do
        candidate="$name.$alt"
        if [[ -f "$candidate" ]]; then
            echo "$candidate"
            return 0
        fi
    done
    return 1
}

# Normalize source file
if [[ ! -f "$file" ]]; then
    file=$(find_real_source_file)
    if [[ -z "$file" ]]; then
        echo "❌ Source file not found for base '$name'"
        exit 1
    else
        echo "💀 Substituted real file: $file"
    fi
fi

# Pass --verbose if set
raku "$(dirname "$0")/☠️.raku" "$file" $VERBOSE "$@"
