| SUMMARY = "sensor config for phosphor-host-ipmid" |
| PR = "r1" |
| LICENSE = "Apache-2.0" |
| LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" |
| |
| inherit native |
| inherit phosphor-ipmi-host |
| inherit python3native |
| inherit mrw-xml |
| |
| DEPENDS += " \ |
| mrw-native \ |
| mrw-perl-tools-native \ |
| phosphor-ipmi-sensor-config-native \ |
| phosphor-ipmi-sensor-inventory-mrw-config-native \ |
| ${PYTHON_PN}-pyyaml-native \ |
| " |
| |
| PROVIDES += "virtual/phosphor-ipmi-sensor-inventory" |
| |
| S = "${WORKDIR}" |
| SRC_URI += "file://merge_sensor_config.py" |
| |
| do_install() { |
| DEST=${D}${sensor_datadir} |
| install -d ${DEST} |
| |
| ${bindir}/perl-native/perl \ |
| ${bindir}/gen_ipmi_sensor.pl \ |
| -i ${mrw_datadir}/${MRW_XML} \ |
| -m ${sensor_yamldir}/config.yaml \ |
| -o ${DEST}/sensor.yaml |
| } |
| |
| python do_merge_sensor_config () { |
| import subprocess |
| |
| # TODO: Perform the merge in a temporary directory? |
| workdir = d.getVar('WORKDIR', True) |
| nativedir = d.getVar('STAGING_DIR_NATIVE', True) |
| sensoryamldir = d.getVar('sensor_yamldir', True) |
| cmd = [] |
| cmd.append(os.path.join(workdir, 'merge_sensor_config.py')) |
| cmd.append(os.path.join(sensoryamldir, 'config.yaml')) |
| |
| fetch = os.listdir(sensoryamldir) |
| override_urls = [url for url in fetch if url.endswith('-config.yaml')] |
| for url in override_urls: |
| bb.debug(2, 'Merging extra configurations: ' + url) |
| filename = os.path.join(sensoryamldir, url) |
| cmd.append(filename) |
| |
| # Invoke the script and don't catch any resulting exception. |
| subprocess.check_call(cmd) |
| } |
| # python-pyyaml-native is installed by do_configure, so put this task after |
| addtask merge_sensor_config after do_configure before do_compile |