forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			36 lines
		
	
	
		
			793 B
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			793 B
		
	
	
	
		
			Python
		
	
	
	
"""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())
 |