]> git.phdru.name Git - dotfiles.git/blob - bin/cp_recode_fname
Feat(recode-filenames-recursive): Allow to omit parameters
[dotfiles.git] / bin / cp_recode_fname
1 #! /bin/sh
2 set -e
3
4 usage() {
5    echo "Usage: $0 [[from_enc] to_enc] filename" >&2
6    exit 1
7 }
8
9 if [ $# -eq 1 ]; then
10     from_enc="`python3 -c \"from m_lib.defenc import default_encoding; print(default_encoding)"`"
11     if [ "$from_enc" != utf-8 ]; then
12         to_enc=utf-8
13     else
14         usage
15     fi
16     filename="$1"
17 elif [ $# -eq 2 ]; then
18     from_enc="`python3 -c \"from m_lib.defenc import default_encoding; print(default_encoding)"`"
19     to_enc="$1"
20     filename="$2"
21 elif [ $# -eq 3 ]; then
22     from_enc="$1"
23     to_enc="$2"
24     filename="$3"
25 else
26     usage
27 fi
28
29 cmd="`basename \"$0\"`"
30 case "$cmd" in
31     cp_*) cmd="cp -p" ;;
32     mv_*) cmd=mv ;;
33     *)
34         echo "Uncnown command $0, aborting" >&2
35         exit 2
36     ;;
37 esac
38
39 filename_recoded=`echo "$filename" | iconv -f "$from_enc" -t "$to_enc"`
40 exec $cmd "$filename" "$filename_recoded"