From: Ciaran Gultnieks Date: Sun, 24 Nov 2013 10:29:28 +0000 (+0000) Subject: Some more symlink-related improvements X-Git-Tag: 0.1~150 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=da0af33bf450e232ef0951718a52d097d99764d0;p=fdroidserver.git Some more symlink-related improvements --- diff --git a/fdroidserver/common.py b/fdroidserver/common.py index 90eb2c1a..4ac640ae 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -905,13 +905,21 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver= for part in build['rm'].split(';'): dest = os.path.join(build_dir, part.strip()) rdest = os.path.abspath(dest) + if options.verbose: + print "Removing {0}".format(rdest) if not rdest.startswith(os.path.abspath(build_dir)): raise BuildException("rm for {1} is outside build root {0}".format( os.path.abspath(build_dir),os.path.abspath(dest))) if rdest == os.path.abspath(build_dir): raise BuildException("rm removes whole build directory") - if os.path.exists(rdest): - subprocess.call('rm -rf ' + rdest, shell=True) + if os.path.lexists(rdest): + if os.path.islink(rdest): + subprocess.call('unlink ' + rdest, shell=True) + else: + subprocess.call('rm -rf ' + rdest, shell=True) + else: + if options.verbose: + print "...but it didn't exist" # Fix apostrophes translation files if necessary... if build['fixapos']: