From 8ac0c96537f876127be879d0931ede1545f93d34 Mon Sep 17 00:00:00 2001 From: Cheuk Leung Date: Mon, 6 Jul 2015 21:33:00 +0200 Subject: [PATCH] Fix removing broken symlink in reference dir Re-ordered to first create the symlink before checking the source file and remove the destination if the source does not exists. Change-Id: Iae923ba2ef0ba5a8dc1b8e42d8cc3f3708f773af --- project.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/project.py b/project.py index c91085c3..9a7128af 100644 --- a/project.py +++ b/project.py @@ -2373,6 +2373,14 @@ class Project(object): if name in symlink_dirs and not os.path.lexists(src): os.makedirs(src) + if name in to_symlink: + os.symlink(os.path.relpath(src, os.path.dirname(dst)), dst) + elif copy_all and not os.path.islink(dst): + if os.path.isdir(src): + shutil.copytree(src, dst) + elif os.path.isfile(src): + shutil.copy(src, dst) + # If the source file doesn't exist, ensure the destination # file doesn't either. if name in symlink_files and not os.path.lexists(src): @@ -2381,13 +2389,6 @@ class Project(object): except OSError: pass - if name in to_symlink: - os.symlink(os.path.relpath(src, os.path.dirname(dst)), dst) - elif copy_all and not os.path.islink(dst): - if os.path.isdir(src): - shutil.copytree(src, dst) - elif os.path.isfile(src): - shutil.copy(src, dst) except OSError as e: if e.errno == errno.EPERM: raise DownloadError('filesystem must support symlinks')