#!/usr/bin/env bash

# Rename a list of files with a sed pattern

usage() {
    echo "Usage: $0 PATTERN [-d] < filelist"
    echo
    echo "Arguments:"
    echo "    PATTERN  Sed pattern to apply"
    echo
    echo "Options:"
    echo "    -d       Dry run"
    exit 1
}

if [[ -z "$1" ]]; then
    usage
fi

pattern="$1"

dry=1
if [[ -n "$2" ]]; then
    if [[ "$2" = '-d' ]]; then
        dry=0
    else
        usage
    fi
fi

while read src
do
    dst="$(echo "$src" | sed "$pattern")"
    if [[ $? != 0 ]]; then
        echo "ERREUR Invalid sed pattern"
        exit 2
    fi
    if [[ $dry == 0 ]]; then
        echo "$src" → "$dst"
    else
        mv -- "$src" "$dst"
    fi

done