#!/bin/sh -e
# $Id: iconv-dir.sh,v 1.1 2007/08/08 07:07:47 sacha Exp $

iconv_entry () {
  new=`echo $1|iconv -f $IN -t $OUT`
  [ $1 = $new ] && return
  #echo iconv_entry $1 to $new
  [ $DRYRUN = 1 ] && return
  mv $1 $new
}

iconv_dir () {
  #echo iconv_dir $1
  cd $1
  local i
  for i in `ls`
  do
    if test -d $i
    then
      iconv_dir $i
    fi
    iconv_entry $i
  done
  cd ..
}

DRYRUN=0

[ $1 = "-d" ] && { DRYRUN=1; shift; }
[ -z $3 ] && { echo Usage: iconv-dir dir input-enc out-enc >&2; exit 1; }
[ -d $1 ] || { echo First argument must be a directory >&2; exit 1; }

IN=$2
OUT=$3
IFS='
'
iconv_dir $1
