g2p / bedup

Btrfs deduplication
http://pypi.python.org/pypi/bedup
GNU General Public License v2.0
322 stars 50 forks source link

Cannot handle mount points with spaces in them #91

Open MarcelWaldvogel opened 7 years ago

MarcelWaldvogel commented 7 years ago

bedup fails when any btrfs filesystem is mounted on a path with a space in it. This happens when a file system with a label with a space in it is automounted. It also happens when a filter without spaces (e.g., /dev/sdxx) is given to select this file system.

Sample output:

# bedup dedup
Traceback (most recent call last):
  File "/usr/local/bin/bedup", line 11, in <module>
    load_entry_point('bedup==0.10.1', 'console_scripts', 'bedup')()
  File "/usr/local/lib/python3.5/dist-packages/bedup/__main__.py", line 497, in script_main
    sys.exit(main(sys.argv))
  File "/usr/local/lib/python3.5/dist-packages/bedup/__main__.py", line 486, in main
    return args.action(args)
  File "/usr/local/lib/python3.5/dist-packages/bedup/__main__.py", line 127, in vol_cmd
    vols = whole_fs.load_all_writable_vols(tt)
  File "/usr/local/lib/python3.5/dist-packages/bedup/filesystem.py", line 560, in load_all_writable_vols
    fs.root_info
  File "/usr/local/lib/python3.5/dist-packages/sqlalchemy/util/langhelpers.py", line 764, in __get__
    obj.__dict__[self.__name__] = result = self.fget(obj)
  File "/usr/local/lib/python3.5/dist-packages/bedup/filesystem.py", line 191, in root_info
    fd = os.open(self.minfos[0].mpoint, os.O_DIRECTORY)
FileNotFoundError: [Errno 2] No such file or directory: '/media/marcel/Backup\\040Marcel\\040Waldvogel'

Could it be that the mount point path is escaped too many times?