1 #! /usr/bin/env python3
5 from m_lib.defenc import default_encoding
8 src_encoding = default_encoding
9 if src_encoding == 'utf-8':
10 sys.exit("Usage: %s [[src_enc] dst_enc [start_dir]]" % sys.argv[0])
12 dst_encoding = 'utf-8'
14 elif len(sys.argv) == 2:
15 src_encoding = default_encoding
16 dst_encoding = sys.argv[1]
18 elif len(sys.argv) == 3:
19 src_encoding = default_encoding
20 dst_encoding = sys.argv[1]
21 start_dir = sys.argv[2]
22 elif len(sys.argv) == 4:
23 src_encoding = sys.argv[1]
24 dst_encoding = sys.argv[2]
25 start_dir = sys.argv[3]
27 sys.exit("Usage: %s [[src_enc] dst_enc [start_dir]]" % sys.argv[0])
29 # Fake for recode_filenames.py
30 sys.argv = ['', src_encoding, dst_encoding]
31 from recode_filenames import _recode
37 plist = list(os.walk(start_dir, topdown=False, onerror=_onerror))
40 save_dir = os.getcwd()
41 for dirname, _subdirs, fnames in plist:
45 for filename in fnames:
46 # if not exists - it was renamed already
47 if os.path.exists(filename) and \
48 os.path.isfile(filename):
49 newname = _recode(filename)
50 if newname != filename:
51 os.rename(filename, newname)
53 dirname = os.path.basename(dirname)
54 newname = _recode(dirname)
55 if newname != dirname:
56 os.rename(dirname, newname)