Source code for xonsh.lib.os
"""Xonsh extension of the standard library os module, using xonsh for
subprocess calls"""
import sys
from xonsh.built_ins import subproc_uncaptured
from xonsh.dirstack import with_pushd
indir = with_pushd
"""alias to push_d context manager"""
[docs]
def rmtree(dirname, force=False):
"""Remove a directory, even if it has read-only files (Windows).
Git creates read-only files that must be removed on teardown. See
https://stackoverflow.com/questions/2656322 for more info.
Parameters
----------
dirname : str
Directory to be removed
force : bool
If True force removal, defaults to False
"""
if sys.platform == "win32":
cmd_args = "/S/Q"
subproc_uncaptured(["rmdir", cmd_args, dirname])
else:
cmd_args = "-r"
if force:
cmd_args += "f"
subproc_uncaptured(["rm", cmd_args, dirname])