@@ 383-417 (lines=35) @@ | ||
380 | return decorate |
|
381 | ||
382 | ||
383 | def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False, |
|
384 | env=None): |
|
385 | """Call the given command(s).""" |
|
386 | assert isinstance(commands, list) |
|
387 | p = None |
|
388 | for c in commands: |
|
389 | try: |
|
390 | dispcmd = str([c] + args) |
|
391 | # remember shell=False, so use git.cmd on windows, not just git |
|
392 | p = subprocess.Popen([c] + args, cwd=cwd, env=env, |
|
393 | stdout=subprocess.PIPE, |
|
394 | stderr=(subprocess.PIPE if hide_stderr |
|
395 | else None)) |
|
396 | break |
|
397 | except EnvironmentError: |
|
398 | e = sys.exc_info()[1] |
|
399 | if e.errno == errno.ENOENT: |
|
400 | continue |
|
401 | if verbose: |
|
402 | print("unable to run %s" % dispcmd) |
|
403 | print(e) |
|
404 | return None, None |
|
405 | else: |
|
406 | if verbose: |
|
407 | print("unable to find command, tried %s" % (commands,)) |
|
408 | return None, None |
|
409 | stdout = p.communicate()[0].strip() |
|
410 | if sys.version_info[0] >= 3: |
|
411 | stdout = stdout.decode() |
|
412 | if p.returncode != 0: |
|
413 | if verbose: |
|
414 | print("unable to run %s (error)" % dispcmd) |
|
415 | print("stdout was %s" % stdout) |
|
416 | return None, p.returncode |
|
417 | return stdout, p.returncode |
|
418 | LONG_VERSION_PY['git'] = ''' |
|
419 | # This file helps to compute a version number in source trees obtained from |
|
420 | # git-archive tarball (such as those provided by githubs download-from-tag |
@@ 70-104 (lines=35) @@ | ||
67 | return decorate |
|
68 | ||
69 | ||
70 | def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False, |
|
71 | env=None): |
|
72 | """Call the given command(s).""" |
|
73 | assert isinstance(commands, list) |
|
74 | p = None |
|
75 | for c in commands: |
|
76 | try: |
|
77 | dispcmd = str([c] + args) |
|
78 | # remember shell=False, so use git.cmd on windows, not just git |
|
79 | p = subprocess.Popen([c] + args, cwd=cwd, env=env, |
|
80 | stdout=subprocess.PIPE, |
|
81 | stderr=(subprocess.PIPE if hide_stderr |
|
82 | else None)) |
|
83 | break |
|
84 | except EnvironmentError: |
|
85 | e = sys.exc_info()[1] |
|
86 | if e.errno == errno.ENOENT: |
|
87 | continue |
|
88 | if verbose: |
|
89 | print("unable to run %s" % dispcmd) |
|
90 | print(e) |
|
91 | return None, None |
|
92 | else: |
|
93 | if verbose: |
|
94 | print("unable to find command, tried %s" % (commands,)) |
|
95 | return None, None |
|
96 | stdout = p.communicate()[0].strip() |
|
97 | if sys.version_info[0] >= 3: |
|
98 | stdout = stdout.decode() |
|
99 | if p.returncode != 0: |
|
100 | if verbose: |
|
101 | print("unable to run %s (error)" % dispcmd) |
|
102 | print("stdout was %s" % stdout) |
|
103 | return None, p.returncode |
|
104 | return stdout, p.returncode |
|
105 | ||
106 | ||
107 | def versions_from_parentdir(parentdir_prefix, root, verbose): |