diff options
author | dheerajpdsk <p.dheeraj.srujan.kumar@intel.com> | 2022-05-06 02:48:05 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-06 02:48:05 +0300 |
commit | ca8d06bc610af08c2d3efc487aa9519989b743e6 (patch) | |
tree | c557da2136640a8ce48439f19fe5f7071faffeca /meta-phosphor/classes/license_static.bbclass | |
parent | 7cf0c1cd0ce835d1833509b7b911e8a97380278b (diff) | |
parent | 18f97faa411078b95d042d207f5fff32bc8ece1d (diff) | |
download | openbmc-ca8d06bc610af08c2d3efc487aa9519989b743e6.tar.xz |
Update
Diffstat (limited to 'meta-phosphor/classes/license_static.bbclass')
-rw-r--r-- | meta-phosphor/classes/license_static.bbclass | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/meta-phosphor/classes/license_static.bbclass b/meta-phosphor/classes/license_static.bbclass new file mode 100644 index 000000000..dd7301758 --- /dev/null +++ b/meta-phosphor/classes/license_static.bbclass @@ -0,0 +1,64 @@ +#### +# 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; " |