17db96d56Sopenharmony_ci#!/bin/sh
27db96d56Sopenharmony_ci
37db96d56Sopenharmony_ci/Library/Frameworks/Python.framework/Versions/@PYVER@/bin/python@PYVER@ << "EOF"
47db96d56Sopenharmony_ci
57db96d56Sopenharmony_ci# install_certifi.py
67db96d56Sopenharmony_ci#
77db96d56Sopenharmony_ci# sample script to install or update a set of default Root Certificates
87db96d56Sopenharmony_ci# for the ssl module.  Uses the certificates provided by the certifi package:
97db96d56Sopenharmony_ci#       https://pypi.org/project/certifi/
107db96d56Sopenharmony_ci
117db96d56Sopenharmony_ciimport os
127db96d56Sopenharmony_ciimport os.path
137db96d56Sopenharmony_ciimport ssl
147db96d56Sopenharmony_ciimport stat
157db96d56Sopenharmony_ciimport subprocess
167db96d56Sopenharmony_ciimport sys
177db96d56Sopenharmony_ci
187db96d56Sopenharmony_ciSTAT_0o775 = ( stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR
197db96d56Sopenharmony_ci             | stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP
207db96d56Sopenharmony_ci             | stat.S_IROTH |                stat.S_IXOTH )
217db96d56Sopenharmony_ci
227db96d56Sopenharmony_cidef main():
237db96d56Sopenharmony_ci    openssl_dir, openssl_cafile = os.path.split(
247db96d56Sopenharmony_ci        ssl.get_default_verify_paths().openssl_cafile)
257db96d56Sopenharmony_ci
267db96d56Sopenharmony_ci    print(" -- pip install --upgrade certifi")
277db96d56Sopenharmony_ci    subprocess.check_call([sys.executable,
287db96d56Sopenharmony_ci        "-E", "-s", "-m", "pip", "install", "--upgrade", "certifi"])
297db96d56Sopenharmony_ci
307db96d56Sopenharmony_ci    import certifi
317db96d56Sopenharmony_ci
327db96d56Sopenharmony_ci    # change working directory to the default SSL directory
337db96d56Sopenharmony_ci    os.chdir(openssl_dir)
347db96d56Sopenharmony_ci    relpath_to_certifi_cafile = os.path.relpath(certifi.where())
357db96d56Sopenharmony_ci    print(" -- removing any existing file or link")
367db96d56Sopenharmony_ci    try:
377db96d56Sopenharmony_ci        os.remove(openssl_cafile)
387db96d56Sopenharmony_ci    except FileNotFoundError:
397db96d56Sopenharmony_ci        pass
407db96d56Sopenharmony_ci    print(" -- creating symlink to certifi certificate bundle")
417db96d56Sopenharmony_ci    os.symlink(relpath_to_certifi_cafile, openssl_cafile)
427db96d56Sopenharmony_ci    print(" -- setting permissions")
437db96d56Sopenharmony_ci    os.chmod(openssl_cafile, STAT_0o775)
447db96d56Sopenharmony_ci    print(" -- update complete")
457db96d56Sopenharmony_ci
467db96d56Sopenharmony_ciif __name__ == '__main__':
477db96d56Sopenharmony_ci    main()
487db96d56Sopenharmony_ciEOF
49