mirror of
https://github.com/alexbelgium/hassio-addons.git
synced 2026-07-07 14:38:48 +02:00
Fix apt source recovery before auto package install
This commit is contained in:
@@ -9,6 +9,61 @@ set -e
|
|||||||
PACKAGES="$1"
|
PACKAGES="$1"
|
||||||
echo "To install : $PACKAGES"
|
echo "To install : $PACKAGES"
|
||||||
|
|
||||||
|
apt_has_sources() {
|
||||||
|
[ -d /etc/apt ] || return 1
|
||||||
|
find /etc/apt -type f \( -name "sources.list" -o -name "*.list" -o -name "*.sources" \) \
|
||||||
|
-exec grep -Ehs '^[[:space:]]*(deb|Types:[[:space:]]*deb)' {} \; | grep -q .
|
||||||
|
}
|
||||||
|
|
||||||
|
restore_apt_sources_if_missing() {
|
||||||
|
command -v apt-get > /dev/null 2> /dev/null || return 0
|
||||||
|
apt_has_sources && return 0
|
||||||
|
|
||||||
|
if [ -r /etc/os-release ]; then
|
||||||
|
# shellcheck disable=SC1091
|
||||||
|
. /etc/os-release
|
||||||
|
fi
|
||||||
|
|
||||||
|
codename="${VERSION_CODENAME:-${UBUNTU_CODENAME:-}}"
|
||||||
|
if [ -z "$codename" ]; then
|
||||||
|
echo "Error: apt sources are missing and OS codename could not be detected" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p /etc/apt
|
||||||
|
case "${ID:-}" in
|
||||||
|
ubuntu)
|
||||||
|
arch="$(dpkg --print-architecture 2> /dev/null || true)"
|
||||||
|
if [ "$arch" = "amd64" ] || [ "$arch" = "i386" ]; then
|
||||||
|
mirror="http://archive.ubuntu.com/ubuntu"
|
||||||
|
security_mirror="http://security.ubuntu.com/ubuntu"
|
||||||
|
else
|
||||||
|
mirror="http://ports.ubuntu.com/ubuntu-ports"
|
||||||
|
security_mirror="$mirror"
|
||||||
|
fi
|
||||||
|
cat > /etc/apt/sources.list <<EOF2
|
||||||
|
deb ${mirror} ${codename} main restricted universe multiverse
|
||||||
|
deb ${mirror} ${codename}-updates main restricted universe multiverse
|
||||||
|
deb ${security_mirror} ${codename}-security main restricted universe multiverse
|
||||||
|
EOF2
|
||||||
|
;;
|
||||||
|
debian)
|
||||||
|
cat > /etc/apt/sources.list <<EOF2
|
||||||
|
deb http://deb.debian.org/debian ${codename} main contrib non-free non-free-firmware
|
||||||
|
deb http://deb.debian.org/debian ${codename}-updates main contrib non-free non-free-firmware
|
||||||
|
deb http://deb.debian.org/debian-security ${codename}-security main contrib non-free non-free-firmware
|
||||||
|
EOF2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Error: apt sources are missing for unsupported OS '${ID:-unknown}'" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
restore_apt_sources_if_missing
|
||||||
|
rm -f /ERROR
|
||||||
|
|
||||||
# Install bash if needed
|
# Install bash if needed
|
||||||
if ! command -v bash > /dev/null 2> /dev/null; then
|
if ! command -v bash > /dev/null 2> /dev/null; then
|
||||||
(apt-get update && apt-get install -yqq --no-install-recommends bash || apk add --no-cache bash) > /dev/null
|
(apt-get update && apt-get install -yqq --no-install-recommends bash || apk add --no-cache bash) > /dev/null
|
||||||
|
|||||||
Reference in New Issue
Block a user