mirror of
https://github.com/89luca89/distrobox.git
synced 2026-08-19 01:14:49 -05:00
fix(containermanager): use correct enter command path on exported bins
This commit is contained in:
committed by
Alessio Biancalana
parent
fa1a2cc7e4
commit
420a923c5f
@@ -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¤" "{}"
|
||||
)
|
||||
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user