123456789101112131415161718192021222324252627282930313233343536373839404142 |
- 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)
|