65 lines
1.7 KiB
Plaintext
65 lines
1.7 KiB
Plaintext
|
|
####
|
||
|
|
# 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}${datadir}/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; "
|