use builtin say
[vrac.git] / rename.sh
1 #!/bin/sh
2
3 usage() {
4         echo 'Usage: ${0} -p prefix [-d directory] [-t extension] [-u]'
5         echo "  -p      prefix to be removed"
6         echo "  -d      destination folder"
7         echo "          default current directory"
8         echo "  -t      files extension"
9         echo "          default to ogg"
10         echo "  -u      encode filename in UTF-8"
11         echo '---------------------'
12 }
13
14 processing()
15 {
16         echo processing "${@}"
17         newfile=`echo "$@" | sed "s/${prefix}//g"`
18         [ -n ${iconv} ] && newfile=`echo ${newfile} | iconv -cs -t UTF-8`
19         echo "  : copying <$newfile> into <${dest}>"
20         cp "${@}" "${dest}/${newfile}"
21 }
22
23 while getopts "p:d:t:u" option 
24 do
25         case ${option} in
26                 p)
27                         prefix="${OPTARG}"
28                         ;;
29                 d)
30                         dest="${OPTARG}"
31                         ;;
32                 t)
33                         ext="${OPTARG}"
34                         ;;
35                 u) iconv="y"
36                         ;;
37                 *)
38                         usage
39                         exit 1
40                         ;;
41
42         esac
43 done
44
45 dest=${dest:-.}
46 ext=${ext:-ogg}
47 [ -z "${dest}" ] && usage && exit 1
48 [ -z "${prefix}" ] && usage && exit 1
49
50 echo 
51 echo "Copy and rename ${ext} files, removing <${prefix}> prefixes, into <${dest}>."
52 [ -n "${iconv}" ] && echo '* Filename UTF-8 encoding is on.'
53 echo 
54 mkdir -p "${dest}" || (echo "unable to create ${dest}" && exit 1)
55
56 find . -maxdepth 1 -type f -name "*.${ext}" -print | while IFS= read file; do processing "${file}" ; done
57