Index: tracing/third_party/tvcm/third_party/rjsmin/_setup/py2/shell.py |
diff --git a/tracing/third_party/tvcm/third_party/rjsmin/_setup/py2/shell.py b/tracing/third_party/tvcm/third_party/rjsmin/_setup/py2/shell.py |
deleted file mode 100644 |
index 4eafb9c8647321bb426fd6f665bdb2ada732e235..0000000000000000000000000000000000000000 |
--- a/tracing/third_party/tvcm/third_party/rjsmin/_setup/py2/shell.py |
+++ /dev/null |
@@ -1,478 +0,0 @@ |
-# -*- coding: ascii -*- |
-# |
-# Copyright 2007 - 2013 |
-# Andr\xe9 Malo or his licensors, as applicable |
-# |
-# Licensed under the Apache License, Version 2.0 (the "License"); |
-# you may not use this file except in compliance with the License. |
-# You may obtain a copy of the License at |
-# |
-# http://www.apache.org/licenses/LICENSE-2.0 |
-# |
-# Unless required by applicable law or agreed to in writing, software |
-# distributed under the License is distributed on an "AS IS" BASIS, |
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-# See the License for the specific language governing permissions and |
-# limitations under the License. |
-""" |
-================= |
- Shell utilities |
-================= |
- |
-Shell utilities. |
-""" |
-from __future__ import generators |
- |
-__author__ = u"Andr\xe9 Malo" |
-__docformat__ = "restructuredtext en" |
- |
-import errno as _errno |
-import fnmatch as _fnmatch |
-import os as _os |
-import shutil as _shutil |
-import sys as _sys |
-import tempfile as _tempfile |
- |
-cwd = _os.path.dirname(_os.path.abspath(_sys.argv[0])) |
- |
-class ExitError(RuntimeError): |
- """ Exit error """ |
- def __init__(self, code): |
- RuntimeError.__init__(self, code) |
- self.code = code |
- self.signal = None |
- |
- |
-class SignalError(ExitError): |
- """ Signal error """ |
- def __init__(self, code, signal): |
- ExitError.__init__(self, code) |
- import signal as _signal |
- self.signal = signal |
- for key, val in vars(_signal).iteritems(): |
- if key.startswith('SIG') and not key.startswith('SIG_'): |
- if val == signal: |
- self.signalstr = key[3:] |
- break |
- else: |
- self.signalstr = '%04d' % signal |
- |
- |
-def native(path): |
- """ Convert slash path to native """ |
- path = _os.path.sep.join(path.split('/')) |
- return _os.path.normpath(_os.path.join(cwd, path)) |
- |
- |
-def cp(src, dest): |
- """ Copy src to dest """ |
- _shutil.copy2(native(src), native(dest)) |
- |
- |
-def cp_r(src, dest): |
- """ Copy -r src to dest """ |
- _shutil.copytree(native(src), native(dest)) |
- |
- |
-def rm(dest): |
- """ Remove a file """ |
- try: |
- _os.unlink(native(dest)) |
- except OSError, e: |
- if _errno.ENOENT != e.errno: |
- raise |
- |
-def rm_rf(dest): |
- """ Remove a tree """ |
- dest = native(dest) |
- if _os.path.exists(dest): |
- for path in files(dest, '*'): |
- _os.chmod(native(path), 0644) |
- _shutil.rmtree(dest) |
- |
- |
-try: |
- mkstemp = _tempfile.mkstemp |
-except AttributeError: |
- # helpers stolen from 2.4 tempfile module |
- try: |
- import fcntl as _fcntl |
- except ImportError: |
- def _set_cloexec(fd): |
- """ Set close-on-exec (not implemented, but not an error) """ |
- # pylint: disable = W0613 |
- pass |
- else: |
- def _set_cloexec(fd): |
- """ Set close-on-exec """ |
- try: |
- flags = _fcntl.fcntl(fd, _fcntl.F_GETFD, 0) |
- except IOError: |
- pass |
- else: |
- # flags read successfully, modify |
- flags |= _fcntl.FD_CLOEXEC |
- _fcntl.fcntl(fd, _fcntl.F_SETFD, flags) |
- |
- _text_openflags = _os.O_RDWR | _os.O_CREAT | _os.O_EXCL |
- _text_openflags |= getattr(_os, 'O_NOINHERIT', 0) |
- _text_openflags |= getattr(_os, 'O_NOFOLLOW', 0) |
- |
- _bin_openflags = _text_openflags |
- _bin_openflags |= getattr(_os, 'O_BINARY', 0) |
- |
- def mkstemp(suffix="", prefix=_tempfile.gettempprefix(), dir=None, |
- text=False): |
- """ Create secure temp file """ |
- # pylint: disable = W0622 |
- if dir is None: |
- dir = _tempfile.gettempdir() |
- if text: |
- flags = _text_openflags |
- else: |
- flags = _bin_openflags |
- count = 100 |
- while count > 0: |
- j = _tempfile._counter.get_next() # pylint: disable = E1101, W0212 |
- fname = _os.path.join(dir, prefix + str(j) + suffix) |
- try: |
- fd = _os.open(fname, flags, 0600) |
- except OSError, e: |
- if e.errno == _errno.EEXIST: |
- count -= 1 |
- continue |
- raise |
- _set_cloexec(fd) |
- return fd, _os.path.abspath(fname) |
- raise IOError, (_errno.EEXIST, "No usable temporary file name found") |
- |
- |
-def _pipespawn(argv, env): |
- """ Pipe spawn """ |
- # pylint: disable = R0912 |
- import pickle as _pickle |
- fd, name = mkstemp('.py') |
- try: |
- _os.write(fd, (r""" |
-import os |
-import pickle |
-try: |
- import subprocess |
-except ImportError: |
- subprocess = None |
-import sys |
- |
-argv = pickle.loads(%(argv)s) |
-env = pickle.loads(%(env)s) |
-if 'X_JYTHON_WA_PATH' in env: |
- env['PATH'] = env['X_JYTHON_WA_PATH'] |
- |
-if subprocess is None: |
- pid = os.spawnve(os.P_NOWAIT, argv[0], argv, env) |
- result = os.waitpid(pid, 0)[1] |
-else: |
- p = subprocess.Popen(argv, env=env) |
- result = p.wait() |
- if result < 0: |
- print "\n%%d 1" %% (-result) |
- sys.exit(2) |
- |
-if result == 0: |
- sys.exit(0) |
-signalled = getattr(os, 'WIFSIGNALED', None) |
-if signalled is not None: |
- if signalled(result): |
- print "\n%%d %%d" %% (os.WTERMSIG(result), result & 7) |
- sys.exit(2) |
-print "\n%%d" %% (result & 7,) |
-sys.exit(3) |
- """.strip() + "\n") % { |
- 'argv': repr(_pickle.dumps(argv)), |
- 'env': repr(_pickle.dumps(env)), |
- }) |
- fd, _ = None, _os.close(fd) |
- if _sys.platform == 'win32': |
- argv = [] |
- for arg in [_sys.executable, name]: |
- if ' ' in arg or arg.startswith('"'): |
- arg = '"%s"' % arg.replace('"', '\\"') |
- argv.append(arg) |
- argv = ' '.join(argv) |
- shell = True |
- close_fds = False |
- else: |
- argv = [_sys.executable, name] |
- shell = False |
- close_fds = True |
- |
- res = 0 |
- try: |
- import subprocess |
- except ImportError: |
- import popen2 as _popen2 |
- proc = _popen2.Popen3(argv, False) |
- try: |
- proc.tochild.close() |
- result = proc.fromchild.read() |
- finally: |
- res = proc.wait() |
- else: |
- if 'X_JYTHON_WA_PATH' in env: |
- env['PATH'] = env['X_JYTHON_WA_PATH'] |
- |
- proc = subprocess.Popen(argv, |
- shell=shell, |
- stdin=subprocess.PIPE, |
- stdout=subprocess.PIPE, |
- close_fds=close_fds, |
- env=env, |
- ) |
- try: |
- proc.stdin.close() |
- result = proc.stdout.read() |
- finally: |
- res = proc.wait() |
- if res != 0: |
- if res == 2: |
- signal, code = map(int, result.splitlines()[-1].split()) |
- raise SignalError(code, signal) |
- elif res == 3: |
- code = int(result.splitlines()[-1].strip()) |
- raise ExitError(code) |
- raise ExitError(res) |
- |
- return result |
- finally: |
- try: |
- if fd is not None: |
- _os.close(fd) |
- finally: |
- _os.unlink(name) |
- |
- |
-def _filepipespawn(infile, outfile, argv, env): |
- """ File Pipe spawn """ |
- try: |
- import subprocess |
- except ImportError: |
- subprocess = None |
- import pickle as _pickle |
- fd, name = mkstemp('.py') |
- try: |
- _os.write(fd, (""" |
-import os |
-import pickle |
-import sys |
- |
-infile = pickle.loads(%(infile)s) |
-outfile = pickle.loads(%(outfile)s) |
-argv = pickle.loads(%(argv)s) |
-env = pickle.loads(%(env)s) |
- |
-if infile is not None: |
- infile = open(infile, 'rb') |
- os.dup2(infile.fileno(), 0) |
- infile.close() |
-if outfile is not None: |
- outfile = open(outfile, 'wb') |
- os.dup2(outfile.fileno(), 1) |
- outfile.close() |
- |
-pid = os.spawnve(os.P_NOWAIT, argv[0], argv, env) |
-result = os.waitpid(pid, 0)[1] |
-sys.exit(result & 7) |
- """.strip() + "\n") % { |
- 'infile': repr(_pickle.dumps(_os.path.abspath(infile))), |
- 'outfile': repr(_pickle.dumps(_os.path.abspath(outfile))), |
- 'argv': repr(_pickle.dumps(argv)), |
- 'env': repr(_pickle.dumps(env)), |
- }) |
- fd, _ = None, _os.close(fd) |
- if _sys.platform == 'win32': |
- argv = [] |
- for arg in [_sys.executable, name]: |
- if ' ' in arg or arg.startswith('"'): |
- arg = '"%s"' % arg.replace('"', '\\"') |
- argv.append(arg) |
- argv = ' '.join(argv) |
- close_fds = False |
- shell = True |
- else: |
- argv = [_sys.executable, name] |
- close_fds = True |
- shell = False |
- |
- if subprocess is None: |
- pid = _os.spawnve(_os.P_NOWAIT, argv[0], argv, env) |
- return _os.waitpid(pid, 0)[1] |
- else: |
- p = subprocess.Popen( |
- argv, env=env, shell=shell, close_fds=close_fds |
- ) |
- return p.wait() |
- finally: |
- try: |
- if fd is not None: |
- _os.close(fd) |
- finally: |
- _os.unlink(name) |
- |
- |
-def spawn(*argv, **kwargs): |
- """ Spawn a process """ |
- try: |
- import subprocess |
- except ImportError: |
- subprocess = None |
- |
- if _sys.platform == 'win32': |
- newargv = [] |
- for arg in argv: |
- if not arg or ' ' in arg or arg.startswith('"'): |
- arg = '"%s"' % arg.replace('"', '\\"') |
- newargv.append(arg) |
- argv = newargv |
- close_fds = False |
- shell = True |
- else: |
- close_fds = True |
- shell = False |
- |
- env = kwargs.get('env') |
- if env is None: |
- env = dict(_os.environ) |
- if 'X_JYTHON_WA_PATH' in env: |
- env['PATH'] = env['X_JYTHON_WA_PATH'] |
- |
- echo = kwargs.get('echo') |
- if echo: |
- print ' '.join(argv) |
- filepipe = kwargs.get('filepipe') |
- if filepipe: |
- return _filepipespawn( |
- kwargs.get('stdin'), kwargs.get('stdout'), argv, env |
- ) |
- pipe = kwargs.get('stdout') |
- if pipe: |
- return _pipespawn(argv, env) |
- |
- if subprocess is None: |
- pid = _os.spawnve(_os.P_NOWAIT, argv[0], argv, env) |
- return _os.waitpid(pid, 0)[1] |
- else: |
- p = subprocess.Popen(argv, env=env, shell=shell, close_fds=close_fds) |
- return p.wait() |
- |
- |
-try: |
- walk = _os.walk |
-except AttributeError: |
- # copy from python 2.4 sources (modulo docs and comments) |
- def walk(top, topdown=True, onerror=None): |
- """ directory tree walker """ |
- # pylint: disable = C0103 |
- join, isdir, islink = _os.path.join, _os.path.isdir, _os.path.islink |
- listdir, error = _os.listdir, _os.error |
- |
- try: |
- names = listdir(top) |
- except error, err: |
- if onerror is not None: |
- onerror(err) |
- return |
- |
- dirs, nondirs = [], [] |
- for name in names: |
- if isdir(join(top, name)): |
- dirs.append(name) |
- else: |
- nondirs.append(name) |
- |
- if topdown: |
- yield top, dirs, nondirs |
- for name in dirs: |
- path = join(top, name) |
- if not islink(path): |
- for x in walk(path, topdown, onerror): |
- yield x |
- if not topdown: |
- yield top, dirs, nondirs |
- |
- |
-def files(base, wildcard='[!.]*', recursive=1, prune=('.git', '.svn', 'CVS')): |
- """ Determine a filelist """ |
- for dirpath, dirnames, filenames in walk(native(base)): |
- for item in prune: |
- if item in dirnames: |
- dirnames.remove(item) |
- |
- filenames.sort() |
- for name in _fnmatch.filter(filenames, wildcard): |
- dest = _os.path.join(dirpath, name) |
- if dest.startswith(cwd): |
- dest = dest.replace(cwd, '', 1) |
- aslist = [] |
- head, tail = _os.path.split(dest) |
- while tail: |
- aslist.append(tail) |
- head, tail = _os.path.split(head) |
- aslist.reverse() |
- dest = '/'.join(aslist) |
- yield dest |
- |
- if not recursive: |
- break |
- dirnames.sort() |
- |
- |
-def dirs(base, wildcard='[!.]*', recursive=1, prune=('.git', '.svn', 'CVS')): |
- """ Determine a filelist """ |
- for dirpath, dirnames, filenames in walk(native(base)): |
- for item in prune: |
- if item in dirnames: |
- dirnames.remove(item) |
- |
- dirnames.sort() |
- for name in _fnmatch.filter(dirnames, wildcard): |
- dest = _os.path.join(dirpath, name) |
- if dest.startswith(cwd): |
- dest = dest.replace(cwd, '', 1) |
- aslist = [] |
- head, tail = _os.path.split(dest) |
- while tail: |
- aslist.append(tail) |
- head, tail = _os.path.split(head) |
- aslist.reverse() |
- dest = '/'.join(aslist) |
- yield dest |
- |
- if not recursive: |
- break |
- |
- |
-def frompath(executable): |
- """ Find executable in PATH """ |
- # Based on distutils.spawn.find_executable. |
- path = _os.environ.get('PATH', '') |
- paths = [ |
- _os.path.expanduser(item) |
- for item in path.split(_os.pathsep) |
- ] |
- ext = _os.path.splitext(executable)[1] |
- exts = [''] |
- if _sys.platform == 'win32' or _os.name == 'os2': |
- eext = ['.exe', '.bat', '.py'] |
- if ext not in eext: |
- exts.extend(eext) |
- |
- for ext in exts: |
- if not _os.path.isfile(executable + ext): |
- for path in paths: |
- fname = _os.path.join(path, executable + ext) |
- if _os.path.isfile(fname): |
- # the file exists, we have a shot at spawn working |
- return fname |
- else: |
- return executable + ext |
- |
- return None |