|  | #### | 
|  | # Copyright 2021 Intel Corporation | 
|  | # | 
|  | # Add a class to support serving license info through bmcweb. | 
|  | # | 
|  | # bmcweb serves static content from the /usr/share/www folder, so this class | 
|  | # copies the license info from /usr/share/common-licenses to | 
|  | # /usr/share/www/common-licenses so it will be statically served by bmcweb. | 
|  | # | 
|  | # Requires 'COPY_LIC_DIRS' to be enabled to create /usr/share/common-licenses. | 
|  | # | 
|  | # Class can be inherited in a project bbclass to copy the license info. | 
|  | # | 
|  | # Example: | 
|  | # inherit license_static | 
|  | #### | 
|  |  | 
|  | STATIC_LICENSE_DIR = "${IMAGE_ROOTFS}/usr/share/www/common-licenses" | 
|  |  | 
|  |  | 
|  | def add_index_html_header(f): | 
|  | f.write("<!DOCTYPE html>") | 
|  | f.write("<html>") | 
|  | f.write("<body>") | 
|  | f.write("<p>") | 
|  |  | 
|  |  | 
|  | def add_index_html_footer(f): | 
|  | f.write("</p>") | 
|  | f.write("</body>") | 
|  | f.write("</html>") | 
|  |  | 
|  |  | 
|  | def create_index_files(d): | 
|  | import os | 
|  |  | 
|  | static_license_dir = d.getVar('STATIC_LICENSE_DIR') | 
|  | for dirpath, dirnames, filenames in os.walk(static_license_dir): | 
|  | with open(os.path.join(dirpath, "index.html"), "w") as f: | 
|  | add_index_html_header(f) | 
|  | full_list = filenames+dirnames | 
|  | full_list.sort() | 
|  | f.write("<br>".join(full_list)) | 
|  | add_index_html_footer(f) | 
|  |  | 
|  |  | 
|  | def copy_license_files(d): | 
|  | import shutil | 
|  |  | 
|  | rootfs_license_dir = d.getVar('ROOTFS_LICENSE_DIR') | 
|  | static_license_dir = d.getVar('STATIC_LICENSE_DIR') | 
|  | shutil.copytree(rootfs_license_dir, static_license_dir) | 
|  |  | 
|  |  | 
|  | python do_populate_static_lic() { | 
|  | copy_lic_dirs = d.getVar('COPY_LIC_DIRS') | 
|  | if copy_lic_dirs == "1": | 
|  | copy_license_files(d) | 
|  | create_index_files(d) | 
|  | else: | 
|  | bb.warn("Static licenses not copied because 'COPY_LIC_DIRS' is disabled.") | 
|  | } | 
|  |  | 
|  | ROOTFS_POSTPROCESS_COMMAND:append = "do_populate_static_lic; " |