diff options
| author | Bernát Gábor <bgabor8@bloomberg.net> | 2020-01-16 11:09:43 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-01-16 11:09:43 +0000 |
| commit | b5f618f352557ddea5ec0e0bfe7188690b51e373 (patch) | |
| tree | feb3fd0e4a36d101aa35aa5973c33f8c43fca939 /src/virtualenv/util/path | |
| parent | dbcc95683d00df3e5d7befff431db4bceb52aebc (diff) | |
| download | virtualenv-b5f618f352557ddea5ec0e0bfe7188690b51e373.tar.gz | |
add zipapp support with bundled dependencies (#1491)
Signed-off-by: Bernat Gabor <bgabor8@bloomberg.net>
Diffstat (limited to 'src/virtualenv/util/path')
| -rw-r--r-- | src/virtualenv/util/path/__init__.py | 9 | ||||
| -rw-r--r-- | src/virtualenv/util/path/_permission.py | 20 |
2 files changed, 22 insertions, 7 deletions
diff --git a/src/virtualenv/util/path/__init__.py b/src/virtualenv/util/path/__init__.py index ab5db8e..e00acd5 100644 --- a/src/virtualenv/util/path/__init__.py +++ b/src/virtualenv/util/path/__init__.py @@ -1,12 +1,7 @@ from __future__ import absolute_import, unicode_literals from ._pathlib import Path +from ._permission import make_exe from ._sync import copy, ensure_dir, symlink, symlink_or_copy -__all__ = ( - "ensure_dir", - "symlink_or_copy", - "symlink", - "copy", - "Path", -) +__all__ = ("ensure_dir", "symlink_or_copy", "symlink", "copy", "Path", "make_exe") diff --git a/src/virtualenv/util/path/_permission.py b/src/virtualenv/util/path/_permission.py new file mode 100644 index 0000000..1356b6d --- /dev/null +++ b/src/virtualenv/util/path/_permission.py @@ -0,0 +1,20 @@ +from __future__ import absolute_import, unicode_literals + +from stat import S_IXGRP, S_IXOTH, S_IXUSR + + +def make_exe(filename): + original_mode = filename.stat().st_mode + levels = [S_IXUSR, S_IXGRP, S_IXOTH] + for at in range(len(levels), 0, -1): + try: + mode = original_mode + for level in levels[:at]: + mode |= level + filename.chmod(mode) + break + except PermissionError: + continue + + +__all__ = ("make_exe",) |
