From 7fc88c0c901b68b6e223d6f1383bc1221eae8488 Mon Sep 17 00:00:00 2001 From: Daniel Gnoutcheff Date: Mon, 25 Jul 2016 18:24:16 -0400 Subject: Don't break on strange filenames --- avfs.py | 78 ++++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 39 insertions(+), 39 deletions(-) (limited to 'avfs.py') diff --git a/avfs.py b/avfs.py index 5e877ef..5ab7bea 100644 --- a/avfs.py +++ b/avfs.py @@ -9,7 +9,7 @@ import os.path import subprocess import stat -avfs_sys_mount = os.environ['HOME'] + '/.avfs' +avfs_sys_mount = os.fsencode(os.environ['HOME'] + '/.avfs') avfs_started = False def sys_name(fpath): @@ -35,47 +35,47 @@ def open(fpath, *pargs, **kwargs): # extensions we want to add. avfscmds = { - ('.gz', '#ugz'), - ('.tgz', '#ugz#utar'), - ('.tar.bz2', '#ubz2#utar'), - ('.bz2', '#ubz2'), - ('.bz', '#ubz2'), - ('.tbz2', '#ubz2#utar'), - ('.tbz', '#ubz2#utar'), - ('.Z', '#uz'), - ('.tpz', '#uz#utar'), - ('.tz', '#uz#utar'), - ('.taz', '#uz#utar'), - ('.a', '#uar'), - ('.deb', '#uar'), - ('.tar', '#utar'), - ('.gem', '#utar'), # Add upstream - ('.rar', '#urar'), - ('.sfx', '#urar'), - ('.zip', '#uzip'), - ('.jar', '#uzip'), - ('.ear', '#uzip'), - ('.war', '#uzip'), - ('.nupkg', '#uzip'), # Add upstream - ('.whl', '#uzip'), # Add upstream - ('.7z', '#u7z'), - ('.zoo', '#uzoo'), - ('.lha', '#ulha'), - ('.lhz', '#ulha'), - ('.arj', '#uarj'), - ('.cpio', '#ucpio'), - ('.rpm', '#rpm'), - ('.tar.xz', '#uxze#utar'), - ('.txz', '#uxze#utar'), - ('.xz', '#uxze'), - ('.lzma', '#uxze'), + (b'.gz', b'#ugz'), + (b'.tgz', b'#ugz#utar'), + (b'.tar.bz2', b'#ubz2#utar'), + (b'.bz2', b'#ubz2'), + (b'.bz', b'#ubz2'), + (b'.tbz2', b'#ubz2#utar'), + (b'.tbz', b'#ubz2#utar'), + (b'.Z', b'#uz'), + (b'.tpz', b'#uz#utar'), + (b'.tz', b'#uz#utar'), + (b'.taz', b'#uz#utar'), + (b'.a', b'#uar'), + (b'.deb', b'#uar'), + (b'.tar', b'#utar'), + (b'.gem', b'#utar'), # Add upstream + (b'.rar', b'#urar'), + (b'.sfx', b'#urar'), + (b'.zip', b'#uzip'), + (b'.jar', b'#uzip'), + (b'.ear', b'#uzip'), + (b'.war', b'#uzip'), + (b'.nupkg', b'#uzip'), # Add upstream + (b'.whl', b'#uzip'), # Add upstream + (b'.7z', b'#u7z'), + (b'.zoo', b'#uzoo'), + (b'.lha', b'#ulha'), + (b'.lhz', b'#ulha'), + (b'.arj', b'#uarj'), + (b'.cpio', b'#ucpio'), + (b'.rpm', b'#rpm'), + (b'.tar.xz', b'#uxze#utar'), + (b'.txz', b'#uxze#utar'), + (b'.xz', b'#uxze'), + (b'.lzma', b'#uxze'), } def guesscmd(filename): for ext, cmd in avfscmds: if filename.endswith(ext): return cmd + guesscmd(filename[:-len(ext)]) - return '' + return b'' def get_lstat_mode(filename): """ @@ -115,11 +115,11 @@ def find(path, excludes): if stat.S_ISDIR(mode): for entry in os.listdir(sys_path): - yield from find(path + '/' + entry, excludes) + yield from find(path + b'/' + entry, excludes) elif stat.S_ISREG(mode): yield path if __name__ == "__main__": import sys - for f in find(sys.argv[1], {'.git'}): - print(f) + for f in find(os.fsencode(sys.argv[1]), {b'.git'}): + print(f.decode('utf-8', 'replace')) -- cgit v1.2.1