From: Ming Liu <[email protected]>

Generate podman bash completion script with qemu wrapper.

When docker pkgconfig is enabled, also generate bash completion script
for docker.

Signed-off-by: Ming Liu <[email protected]>
---
 recipes-containers/podman/podman_git.bb | 29 +++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/recipes-containers/podman/podman_git.bb 
b/recipes-containers/podman/podman_git.bb
index 33d437a3..1c64272a 100644
--- a/recipes-containers/podman/podman_git.bb
+++ b/recipes-containers/podman/podman_git.bb
@@ -68,6 +68,18 @@ EXTRA_OEMAKE = " \
 # packageconfig, the podman package will rconfict with docker.
 PACKAGECONFIG ?= "docker"
 
+# podman builds bash completion with the help of podman binary, only the 
machines
+# that support qemu usermode can enable this pkgconfig.
+PACKAGECONFIG:append = " ${@bb.utils.contains('MACHINE_FEATURES', 
'qemu-usermode', 'completion', '', d)}"
+DEPENDS:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 
'qemu-native', '', d)}"
+
+inherit qemu bash-completion
+
+# To avoid breaking the recipes without 'completion' enabled.
+ALLOW_EMPTY:${PN}-bash-completion = "1"
+
+QEMU_OPTIONS = ""
+
 do_compile() {
        cd ${S}/src
        rm -rf .gopath
@@ -116,6 +128,23 @@ do_install() {
                install -d "${D}${sysconfdir}/sysctl.d"
                install -m 0644 "${WORKDIR}/50-podman-rootless.conf" 
"${D}${sysconfdir}/sysctl.d"
        fi
+
+       if ${@bb.utils.contains('PACKAGECONFIG', 'completion', 'true', 'false', 
d)}; then
+               qemu_binary="${@qemu_wrapper_cmdline(d, 
'${STAGING_DIR_TARGET}', ['${B}', '${STAGING_DIR_TARGET}/${base_libdir}'])}"
+               cat > ${WORKDIR}/podman-qemuwrapper << EOF
+#!/bin/sh
+
+$qemu_binary "\$@"
+EOF
+               chmod +x ${WORKDIR}/podman-qemuwrapper
+               ${WORKDIR}/podman-qemuwrapper ./bin/podman completion bash > 
${B}/podman-bash-completion
+               install -d ${D}${datadir}/bash-completion/completions
+               install -m 0644 ${B}/podman-bash-completion 
${D}${datadir}/bash-completion/completions/podman
+               if ${@bb.utils.contains('PACKAGECONFIG', 'docker', 'true', 
'false', d)}; then
+                       sed "s/podman/docker/g" ${B}/podman-bash-completion > 
${B}/docker-bash-completion
+                       install -m 0644 ${B}/docker-bash-completion 
${D}${datadir}/bash-completion/completions/docker
+               fi
+       fi
 }
 
 do_install_ptest () {
-- 
2.34.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#8531): 
https://lists.yoctoproject.org/g/meta-virtualization/message/8531
Mute This Topic: https://lists.yoctoproject.org/mt/103603296/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-virtualization/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to