diff options
author | Giampaolo Rodola <g.rodola@gmail.com> | 2016-10-27 19:54:27 +0200 |
---|---|---|
committer | Giampaolo Rodola <g.rodola@gmail.com> | 2016-10-27 19:54:27 +0200 |
commit | 677060e58e2b3343403ced9da674397b5901e218 (patch) | |
tree | 2b1e11c8f9af13aedf1b8f252914d4b5a00e29ab | |
parent | ae7ceba3af580d5ea8682a17bd127ab68521ef95 (diff) | |
parent | 1a314d3df5b472c461988ed23c9a9c290ea0a2f2 (diff) | |
download | psutil-677060e58e2b3343403ced9da674397b5901e218.tar.gz |
Merge branch 'oneshot-win' of https://github.com/giampaolo/psutil into oneshot-win
-rw-r--r-- | Makefile | 14 | ||||
-rw-r--r-- | psutil/tests/__init__.py | 2 | ||||
-rwxr-xr-x | scripts/internal/winmake.py | 80 |
3 files changed, 70 insertions, 26 deletions
@@ -35,16 +35,16 @@ all: test # Remove all build files. clean: - rm -rf `find . \ - -type f -name \*.pyc \ + rm -rf `find . -type d -name __pycache__ + -o -type f -name \*.bak \ + -o -type f -name \*.orig \ + -o -type f -name \*.pyc \ -o -type f -name \*.pyd \ -o -type f -name \*.pyo \ - -o -type f -name \*.so \ - -o -type f -name \*.~ \ - -o -type f -name \*.orig \ - -o -type f -name \*.bak \ -o -type f -name \*.rej \ - -o -type d -name __pycache__` + -o -type f -name \*.so \ + -o -type f -name \*.~ + -o -type f -name \*\$testfn` rm -rf \ *.core \ *.egg-info \ diff --git a/psutil/tests/__init__.py b/psutil/tests/__init__.py index ca8b8fc7..883d9285 100644 --- a/psutil/tests/__init__.py +++ b/psutil/tests/__init__.py @@ -103,7 +103,7 @@ AF_UNIX = getattr(socket, "AF_UNIX", None) PYTHON = os.path.realpath(sys.executable) DEVNULL = open(os.devnull, 'r+') -TESTFILE_PREFIX = '$psutil' +TESTFILE_PREFIX = '$testfn' TESTFN = os.path.join(os.path.realpath(os.getcwd()), TESTFILE_PREFIX) _TESTFN = TESTFN + '-internal' TESTFN_UNICODE = TESTFN + "-ƒőő" diff --git a/scripts/internal/winmake.py b/scripts/internal/winmake.py index 7671b735..c6c1e7d9 100755 --- a/scripts/internal/winmake.py +++ b/scripts/internal/winmake.py @@ -110,6 +110,44 @@ def rm(pattern, directory=False): safe_remove(path) +def safe_remove(path): + try: + os.remove(path) + except OSError as err: + if err.errno != errno.ENOENT: + raise + else: + print("rm %s" % path) + + +def safe_rmtree(path): + def onerror(fun, path, excinfo): + exc = excinfo[1] + if exc.errno != errno.ENOENT: + raise + + existed = os.path.isdir(path) + shutil.rmtree(path, onerror=onerror) + if existed: + print("rmdir -f %s" % path) + + +def recursive_rm(*patterns): + """Recursively remove a file or dir by pattern.""" + for root, subdirs, subfiles in os.walk('.'): + root = os.path.normpath(root) + if root.startswith('.git/'): + continue + for file in subfiles: + for pattern in patterns: + if fnmatch.fnmatch(file, pattern): + safe_remove(os.path.join(root, file)) + for dir in subdirs: + for pattern in patterns: + if fnmatch.fnmatch(dir, pattern): + safe_rmtree(os.path.join(root, dir)) + + # =================================================================== # commands # =================================================================== @@ -201,24 +239,28 @@ def uninstall(): @cmd def clean(): """Deletes dev files""" - rm("*.egg-info", directory=True) - rm("*__pycache__", directory=True) - rm("build", directory=True) - rm("dist", directory=True) - rm("htmlcov", directory=True) - rm("tmp", directory=True) - - rm("*.bak") - rm("*.core") - rm("*.orig") - rm("*.pyc") - rm("*.pyd") - rm("*.pyo") - rm("*.rej") - rm("*.so") - rm("*.~") - rm(".coverage") - rm(".tox") + recursive_rm( + "$testfn*", + "*.bak", + "*.core", + "*.egg-info", + "*.orig", + "*.pyc", + "*.pyd", + "*.pyo", + "*.rej", + "*.so", + "*.~", + "*__pycache__", + ".coverage", + ".tox", + ) + safe_rmtree("build") + safe_rmtree(".coverage") + safe_rmtree("dist") + safe_rmtree("docs/_build") + safe_rmtree("htmlcov") + safe_rmtree("tmp") @cmd @@ -317,11 +359,13 @@ def install_git_hooks(): @cmd def bench_oneshot(): + install() sh("%s scripts\\internal\\bench_oneshot.py" % PYTHON) @cmd def bench_oneshot_2(): + install() sh("%s scripts\\internal\\bench_oneshot_2.py" % PYTHON) |