#!/bin/bash

# Usage info
if [[ $# -lt 2 ]]; then
    echo "Usage: $0 {front|back|ext|extension} <string> [folder]"
    exit 1
fi

mode=$1
string=$2
folder=${3:-$(pwd)}

# Ensure the folder exists
if [[ ! -d "$folder" ]]; then
    echo "Error: '$folder' is not a valid directory."
    exit 1
fi

/home/honney/.bin/tracker.py add append

# Process files
for file in "$folder"/*; do
    [[ -f "$file" ]] || continue  # skip non-files
    base="$(basename "$file")"

    # Split filename into name and extension (if any)
    name="${base%.*}"
    ext="${base##*.}"

    case "$mode" in
        front)
            # Add string to the front of the filename
            newname="${string}${base}"
            ;;
        back)
            # Add string before the extension (if present)
            if [[ "$base" == "$ext" ]]; then
                # no extension
                newname="${name}${string}"
            else
                newname="${name}${string}.${ext}"
            fi
            ;;
        ext|extension)
            # Add string *to* the extension (after a dot)
            if [[ "$base" == "$ext" ]]; then
                # file has no extension
                newname="${base}.${string}"
            else
                newname="${name}.${ext}${string}"
            fi
            ;;
        *)
            echo "Invalid mode: '$mode'. Use 'front', 'back', or 'ext/extension'."
            exit 1
            ;;
    esac

    # Avoid renaming collisions
    if [[ "$newname" != "$base" ]]; then
        echo "Renaming: $base -> $newname"
        mv -n "$file" "$folder/$newname"
    fi
done

echo "✅ All applicable files in '$folder' have been renamed."
