def _real_rmrf(fpath, safemode): """ real rmrf """ if safemode: if os.path.normpath(os.path.abspath(fpath)) == '/': raise err.ShellException('cannot rmtree root / under safemode') if os.path.isfile(fpath): os.unlink(fpath) else: shutil.rmtree(fpath)
def rmtree(path, ignore_errors=False, onerror=None, safemode=True): """ safe rmtree. safemode, by default is True, which forbids: 1. not allowing rmtree root "/" """ if safemode: if os.path.normpath(os.path.abspath(path)) == '/': raise err.ShellException('cannot rmtree root / under safemode') if os.path.isfile(path): return os.unlink(path) else: return shutil.rmtree(path, ignore_errors, onerror)