From 21dbc9cbab7759e0b82f84164b017c9eee52fe7a Mon Sep 17 00:00:00 2001 From: Johnny Robeson Date: Sat, 16 Jul 2016 01:49:11 -0400 Subject: [PATCH] use windows specific language for symlink exceptions This now shows our original OS symlink error when Windows version < 6 (Vista) and also shows any other OS error that might be raised. This fixes #2114 --- beets/util/__init__.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/beets/util/__init__.py b/beets/util/__init__.py index f75c1ac41..01bd452bc 100644 --- a/beets/util/__init__.py +++ b/beets/util/__init__.py @@ -473,11 +473,14 @@ def link(path, dest, replace=False): os.symlink(path, dest) except NotImplementedError: # raised on python >= 3.2 and Windows versions before Vista - raise FilesystemError(u'Windows XP does not support symbolic links.' + raise FilesystemError(u'OS does not support symbolic links.' 'link', (path, dest), traceback.format_exc()) - except OSError: - raise FilesystemError(u'Operating system does not support symbolic ' - u'links.', 'link', (path, dest), + except OSError as exc: + # TODO: Windows version checks can be removed for python 3 + if hasattr('sys', 'getwindowsversion'): + if sys.getwindowsversion()[0] < 6: # is before Vista + exc = u'OS does not support symbolic links.' + raise FilesystemError(exc, 'link', (path, dest), traceback.format_exc())