poky/meta/lib/oe/bootfiles.py
Richard Purdie a65fd2b9d5 wic: Update after plugin name changes
Update the plugin names to account for the "-" to "_" plugin name change.

(From OE-Core rev: afa1b5c9f6ed17c021e37a54d0d6abee50a60bf9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-16 17:57:30 +01:00

58 lines
1.8 KiB
Python

#
# SPDX-License-Identifier: MIT
#
# Copyright (C) 2024 Marcus Folkesson
# Author: Marcus Folkesson <marcus.folkesson@gmail.com>
#
# Utility functions handling boot files
#
# Look into deploy_dir and search for boot_files.
# Returns a list of tuples with (original filepath relative to
# deploy_dir, desired filepath renaming)
#
# Heavily inspired of bootimg_partition.py
#
def get_boot_files(deploy_dir, boot_files):
import re
import os
from glob import glob
if boot_files is None:
return None
# list of tuples (src_name, dst_name)
deploy_files = []
for src_entry in re.findall(r'[\w;\-\./\*]+', boot_files):
if ';' in src_entry:
dst_entry = tuple(src_entry.split(';'))
if not dst_entry[0] or not dst_entry[1]:
raise ValueError('Malformed boot file entry: %s' % src_entry)
else:
dst_entry = (src_entry, src_entry)
deploy_files.append(dst_entry)
install_files = []
for deploy_entry in deploy_files:
src, dst = deploy_entry
if '*' in src:
# by default install files under their basename
entry_name_fn = os.path.basename
if dst != src:
# unless a target name was given, then treat name
# as a directory and append a basename
entry_name_fn = lambda name: \
os.path.join(dst,
os.path.basename(name))
srcs = glob(os.path.join(deploy_dir, src))
for entry in srcs:
src = os.path.relpath(entry, deploy_dir)
entry_dst_name = entry_name_fn(entry)
install_files.append((src, entry_dst_name))
else:
install_files.append((src, dst))
return install_files