| 
									
										
										
										
											2016-09-12 09:39:23 -04:00
										 |  |  | #!/bin/sh | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /Library/Frameworks/Python.framework/Versions/@PYVER@/bin/python@PYVER@ << "EOF" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # install_certifi.py | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # sample script to install or update a set of default Root Certificates | 
					
						
							|  |  |  | # for the ssl module.  Uses the certificates provided by the certifi package: | 
					
						
							| 
									
										
										
										
											2018-06-11 00:45:50 -04:00
										 |  |  | #       https://pypi.org/project/certifi/ | 
					
						
							| 
									
										
										
										
											2016-09-12 09:39:23 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | import os | 
					
						
							|  |  |  | import os.path | 
					
						
							|  |  |  | import ssl | 
					
						
							|  |  |  | import stat | 
					
						
							|  |  |  | import subprocess | 
					
						
							|  |  |  | import sys | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | STAT_0o775 = ( stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | 
					
						
							|  |  |  |              | stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP | 
					
						
							|  |  |  |              | stat.S_IROTH |                stat.S_IXOTH ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def main(): | 
					
						
							|  |  |  |     openssl_dir, openssl_cafile = os.path.split( | 
					
						
							|  |  |  |         ssl.get_default_verify_paths().openssl_cafile) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     print(" -- pip install --upgrade certifi") | 
					
						
							|  |  |  |     subprocess.check_call([sys.executable, | 
					
						
							|  |  |  |         "-E", "-s", "-m", "pip", "install", "--upgrade", "certifi"]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     import certifi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # change working directory to the default SSL directory | 
					
						
							|  |  |  |     os.chdir(openssl_dir) | 
					
						
							|  |  |  |     relpath_to_certifi_cafile = os.path.relpath(certifi.where()) | 
					
						
							|  |  |  |     print(" -- removing any existing file or link") | 
					
						
							|  |  |  |     try: | 
					
						
							|  |  |  |         os.remove(openssl_cafile) | 
					
						
							|  |  |  |     except FileNotFoundError: | 
					
						
							|  |  |  |         pass | 
					
						
							|  |  |  |     print(" -- creating symlink to certifi certificate bundle") | 
					
						
							|  |  |  |     os.symlink(relpath_to_certifi_cafile, openssl_cafile) | 
					
						
							|  |  |  |     print(" -- setting permissions") | 
					
						
							|  |  |  |     os.chmod(openssl_cafile, STAT_0o775) | 
					
						
							|  |  |  |     print(" -- update complete") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == '__main__': | 
					
						
							|  |  |  |     main() | 
					
						
							|  |  |  | EOF |