fix(containermanager): use correct enter command path on exported bins

This commit is contained in:
balanza
2026-03-28 15:13:27 +01:00
committed by Alessio Biancalana
parent fa1a2cc7e4
commit 420a923c5f
4 changed files with 10 additions and 8 deletions
@@ -22,7 +22,7 @@
# Expected env variables:
# HOME
# USER
# DISTROBOX_ENTER_PATH
# DISTROBOX_PATH
# DISTROBOX_HOST_HOME
# Ensure we have our env variables correctly set
@@ -288,7 +288,7 @@ if [ "${is_sudo}" -ne 0 ]; then
fi
# Prefix to add to an existing command to work through the container
container_command_prefix="${DISTROBOX_ENTER_PATH:-"distrobox-enter"} ${rootful} -n ${container_name} ${enter_flags} -- ${sudo_prefix} "
container_command_prefix="${DISTROBOX_PATH:-"distrobox"} enter ${rootful} -n ${container_name} ${enter_flags} -- ${sudo_prefix} "
if [ -n "${rootful}" ]; then
container_command_prefix="env SUDO_ASKPASS=\"${sudo_askpass_path}\" DBX_SUDO_PROGRAM=\"sudo --askpass\" ${container_command_prefix}"
@@ -329,7 +329,7 @@ generate_script()
# distrobox_binary
# name: ${container_name}
if [ -z "\${CONTAINER_ID}" ]; then
exec "${DISTROBOX_ENTER_PATH:-"distrobox-enter"}" ${rootful} -n ${container_name} ${enter_flags} -- ${sudo_prefix} ${container_command_suffix}
exec "${DISTROBOX_PATH:-"distrobox"}" enter ${rootful} -n ${container_name} ${enter_flags} -- ${sudo_prefix} ${container_command_suffix}
elif [ -n "\${CONTAINER_ID}" ] && [ "\${CONTAINER_ID}" != "${container_name}" ]; then
exec distrobox-host-exec '${dest_path}/$(basename "${exported_bin}")' "\$@"
else
@@ -461,7 +461,7 @@ export_application()
# shellcheck disable=SC2086
find ${canon_dirs} -type f -print -o -type l -print | sed 's/./\\&/g' |
xargs -I{} grep -l -e "Exec=.*${exported_app}.*" -e "Name=.*${exported_app}.*" "{}" | sed 's/./\\&/g' |
xargs -I{} grep -L -e "Exec=.*${DISTROBOX_ENTER_PATH:-"distrobox.*enter"}.*" "{}" | sed 's/./\\&/g' |
xargs -I{} grep -L -e "Exec=.*${DISTROBOX_PATH:-"distrobox"}.*enter.*" "{}" | sed 's/./\\&/g' |
xargs -I{} printf "%s¤" "{}"
)
fi
@@ -624,11 +624,11 @@ list_exported_applications()
{
# In this phase we search for applications exported.
# First find command will grep through all files in the canonical directories
# and only list files that contain the $DISTROBOX_ENTER_PATH.
# and only list files that contain the $DISTROBOX_PATH.
desktop_files=$(
# shellcheck disable=SC2086
find "/run/host${host_home}/.local/share/applications" -type f -print -o -type l -print 2> /dev/null | sed 's/./\\&/g' |
xargs -I{} grep -l -e "Exec=.*${DISTROBOX_ENTER_PATH:-"distrobox.*enter"}.*" "{}" | sed 's/./\\&/g' |
xargs -I{} grep -l -e "Exec=.*${DISTROBOX_PATH:-"distrobox"}.*enter.*" "{}" | sed 's/./\\&/g' |
xargs -I{} printf "%s¤" "{}"
)
+1 -1
View File
@@ -921,7 +921,7 @@ func (d *Docker) generateEnterCommand(
// Environment variables
cmd = append(cmd, fmt.Sprintf("--env=CONTAINER_ID=%s", containerName))
cmd = append(cmd, fmt.Sprintf("--env=DISTROBOX_ENTER_PATH=%s", executablePath))
cmd = append(cmd, fmt.Sprintf("--env=DISTROBOX_PATH=%s", executablePath))
for _, env := range filterEnvVars() {
cmd = append(cmd, fmt.Sprintf("--env=%s", env))
+1 -1
View File
@@ -807,7 +807,7 @@ func (p *Podman) generateEnterCommand(
// Environment variables
cmd = append(cmd, fmt.Sprintf("--env=CONTAINER_ID=%s", containerName))
cmd = append(cmd, fmt.Sprintf("--env=DISTROBOX_ENTER_PATH=%s", executablePath))
cmd = append(cmd, fmt.Sprintf("--env=DISTROBOX_PATH=%s", executablePath))
for _, env := range filterEnvVars() {
cmd = append(cmd, fmt.Sprintf("--env=%s", env))
+2
View File
@@ -160,6 +160,8 @@ normalize_enter_cmd()
sed -E 's/^(sudo\s+)?(podman|docker|lilipod)\s+//' |
sed -E 's/ --/\n--/g' |
sed -E 's/[[:space:]]+/ /g; s/^ //; s/ $//' |
# The DISTROBOX_PATH will differ — remove it
grep -v 'DISTROBOX_PATH' |
# The DISTROBOX_ENTER_PATH will differ — remove it
grep -v 'DISTROBOX_ENTER_PATH' |
# Environment variables forwarded from host will be the same,