123456789101112131415161718192021222324252627282930313233343536 |
- import os
- import subprocess
- here = os.path.abspath(os.path.dirname(__file__))
- # Workaround for https://github.com/git-for-windows/git/issues/607
- if os.name == "nt":
- for (root, dnames, files) in os.walk(here):
- if "node_modules" in dnames:
- subprocess.check_call(["rmdir", "/s", "/q", "node_modules"], cwd=root, shell=True)
- dnames.remove("node_modules")
- subprocess.check_call("python -m pip uninstall -y jupyterlab".split(), cwd=here)
- def resolvePattern(pat):
- """handle a leading `#` or `@` in a pattern"""
- pat = pat.strip()
- if not pat or pat.startswith("#"):
- return []
- elif pat.startswith("@"):
- raw = pat[1:]
- return [raw, f"!packages/**/{raw}", f"!**/node_modules/**/{raw}"]
- else:
- return [pat]
- # get the exclude patterns listed in .cleanignore
- with open(os.path.join(here, ".cleanignore")) as f:
- git_clean_exclude = [f"--exclude={pat}" for line in f for pat in resolvePattern(line)]
- git_clean_command = ["git", "clean", "-dfx"] + git_clean_exclude
- subprocess.check_call(git_clean_command, cwd=here)
|