Allow command strings to be passed to container

This commit is contained in:
2025-04-24 13:45:59 -04:00
parent 537cc6e73f
commit 007b8c4304

View File

@@ -420,7 +420,7 @@ get_latest_mc_version() {
local mc_version_source local mc_version_source
# Containerized package manager # Containerized package manager
if apt_mc_container && if create_mc_apt_container &&
MC_VERSION=$(sudo buildah run "$CNT" -- apt-cache policy "mediacenter${USER_MC_MVERSION:-${MC_VERSION%%.*}}" | grep Candidate | awk '{print $2}' | sort -V | tail -n1) && MC_VERSION=$(sudo buildah run "$CNT" -- apt-cache policy "mediacenter${USER_MC_MVERSION:-${MC_VERSION%%.*}}" | grep Candidate | awk '{print $2}' | sort -V | tail -n1) &&
execute sudo buildah rm "$CNT" && execute sudo buildah rm "$CNT" &&
[[ $MC_VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then [[ $MC_VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
@@ -772,14 +772,12 @@ acquire_deb_new() {
fi fi
# Define the repositories to search # Define the repositories to search
if ! (apt_mc_container && if ! (create_mc_apt_container "apt-get download --allow-unauthenticated mediacenter$MC_MVERSION" &&
sudo buildah run "$CNT" -- sh -c "
apt-get download --allow-unauthenticated mediacenter$MC_MVERSION" &&
mnt="$(sudo buildah mount "$CNT")" && mnt="$(sudo buildah mount "$CNT")" &&
execute sudo find "$mnt" -maxdepth 1 -type f -name "*.deb" -exec cp {} "$MC_DEB" \; && execute sudo find "$mnt" -maxdepth 1 -type f -name "*.deb" -exec cp {} "$MC_DEB" \; &&
execute sudo chown "$USER:$USER" "$MC_DEB" &&
execute sudo buildah umount "$CNT" && execute sudo buildah umount "$CNT" &&
execute sudo buildah rm "$CNT" && execute sudo buildah rm "$CNT" &&
execute sudo chown "$USER:$USER" "$MC_DEB" &&
[[ -f $MC_DEB ]]); then [[ -f $MC_DEB ]]); then
err "Failed to download DEB from containerized package manager" err "Failed to download DEB from containerized package manager"
echo "Using legacy download method" echo "Using legacy download method"
@@ -1864,8 +1862,9 @@ download() {
debug "${cmd[@]}" "$url" debug "${cmd[@]}" "$url"
"${cmd[@]}" "$url" "${cmd[@]}" "$url"
} }
apt_mc_container() { create_mc_apt_container() {
declare -g CNT declare -g CNT
local -a cmds=("$@")
install_package --silent buildah &>/dev/null && install_package --silent buildah &>/dev/null &&
CNT=$(sudo buildah from --quiet alpine:edge 2>/dev/null) && CNT=$(sudo buildah from --quiet alpine:edge 2>/dev/null) &&
sudo buildah run "$CNT" -- sh -c ' sudo buildah run "$CNT" -- sh -c '
@@ -1880,6 +1879,11 @@ apt_mc_container() {
Architectures: '"$MC_ARCH"' Architectures: '"$MC_ARCH"'
EOF EOF
apt-get update --allow-insecure-repositories &>/dev/null' apt-get update --allow-insecure-repositories &>/dev/null'
# If user passes command strings run them in the container
for cmd in "${cmds[@]}"; do
sudo buildah run "$CNT" -- sh -c "$cmd"
done
} }
# Roughly turn debugging on for pre-init # Roughly turn debugging on for pre-init