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/_permission.py | |
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/_permission.py')
-rw-r--r-- | src/virtualenv/util/path/_permission.py | 20 |
1 files changed, 20 insertions, 0 deletions
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",) |