diff options
author | 2018-09-11 18:18:58 +0000 | |
---|---|---|
committer | 2018-09-11 18:18:58 +0000 | |
commit | 820e1f31efc1d6ed04795ba2e79f3044e1907492 (patch) | |
tree | 815cebb3734784074b661935c33f00bd5eb4d862 /lib/libcxx/utils/not.py | |
parent | Nuke unused LIST() ieee80211com_head. (diff) | |
download | wireguard-openbsd-820e1f31efc1d6ed04795ba2e79f3044e1907492.tar.xz wireguard-openbsd-820e1f31efc1d6ed04795ba2e79f3044e1907492.zip |
import of libc++ 6.0.0
Diffstat (limited to 'lib/libcxx/utils/not.py')
-rw-r--r-- | lib/libcxx/utils/not.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/lib/libcxx/utils/not.py b/lib/libcxx/utils/not.py new file mode 100644 index 00000000000..d9ceb8515d0 --- /dev/null +++ b/lib/libcxx/utils/not.py @@ -0,0 +1,44 @@ +#===----------------------------------------------------------------------===## +# +# The LLVM Compiler Infrastructure +# +# This file is dual licensed under the MIT and the University of Illinois Open +# Source Licenses. See LICENSE.TXT for details. +# +#===----------------------------------------------------------------------===## + +"""not.py is a utility for inverting the return code of commands. +It acts similar to llvm/utils/not. +ex: python /path/to/not.py ' echo hello + echo $? // (prints 1) +""" + +import distutils.spawn +import subprocess +import sys + + +def main(): + argv = list(sys.argv) + del argv[0] + if len(argv) > 0 and argv[0] == '--crash': + del argv[0] + expectCrash = True + else: + expectCrash = False + if len(argv) == 0: + return 1 + prog = distutils.spawn.find_executable(argv[0]) + if prog is None: + sys.stderr.write('Failed to find program %s' % argv[0]) + return 1 + rc = subprocess.call(argv) + if rc < 0: + return 0 if expectCrash else 1 + if expectCrash: + return 1 + return rc == 0 + + +if __name__ == '__main__': + exit(main()) |