summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pym/gentoolkit/eclean/clean.py20
1 files changed, 16 insertions, 4 deletions
diff --git a/pym/gentoolkit/eclean/clean.py b/pym/gentoolkit/eclean/clean.py
index b2cc562..fd59976 100644
--- a/pym/gentoolkit/eclean/clean.py
+++ b/pym/gentoolkit/eclean/clean.py
@@ -125,10 +125,22 @@ class CleanUp(object):
try:
statinfo = os.stat(file_)
except EnvironmentError as er:
- print( pp.error(
- "Could not get stat info for:" + file_), file=sys.stderr)
- print( pp.error(
- "Error: %s" %str(er)), file=sys.stderr)
+ if not os.path.exists(os.readlink(file_)):
+ try:
+ os.remove(file_)
+ print( pp.error(
+ "Removed broken symbolic link " + file_), file=sys.stderr)
+ break
+ except EnvironmentError as er:
+ print( pp.error(
+ "Error deleting broken symbolic link " + file_), file=sys.stderr)
+ print( pp.error("Error: %s" %str(er)), file=sys.stderr)
+ break
+ else:
+ print( pp.error(
+ "Could not get stat info for:" + file_), file=sys.stderr)
+ print( pp.error(
+ "Error: %s" %str(er)), file=sys.stderr)
if self.controller(statinfo.st_size, key, file_, file_type):
# ... try to delete it.
try: