This commit is contained in:
Alexandre
2022-01-20 21:19:51 +01:00
parent 3072b45533
commit 73a4d2b5ff

View File

@@ -46,7 +46,7 @@ PACKAGES="$PACKAGES jq curl vim"
for files in "/etc/cont-init.d" "/etc/services.d" "/scripts"; do for files in "/etc/cont-init.d" "/etc/services.d" "/scripts"; do
# Next directory if does not exists # Next directory if does not exists
if ! ls $files 1>/dev/null 2>&1; then continue; fi if ! ls $files 1>/dev/null 2>&1; then continue; fi
# Test each possible command # Test each possible command
COMMAND="nginx" COMMAND="nginx"
if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then
@@ -55,77 +55,77 @@ for files in "/etc/cont-init.d" "/etc/services.d" "/scripts"; do
[ "$PACKMANAGER" = "apt" ] && PACKAGES="$PACKAGES nginx" [ "$PACKMANAGER" = "apt" ] && PACKAGES="$PACKAGES nginx"
if ls /etc/nginx 1>/dev/null 2>&1; then mv /etc/nginx /etc/nginx2; fi if ls /etc/nginx 1>/dev/null 2>&1; then mv /etc/nginx /etc/nginx2; fi
fi fi
COMMAND="cifs" COMMAND="cifs"
if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then
[ "$VERBOSE" = true ] && echo "$COMMAND required" [ "$VERBOSE" = true ] && echo "$COMMAND required"
[ "$PACKMANAGER" = "apk" ] && PACKAGES="$PACKAGES cifs-utils keyutils" [ "$PACKMANAGER" = "apk" ] && PACKAGES="$PACKAGES cifs-utils keyutils"
[ "$PACKMANAGER" = "apt" ] && PACKAGES="$PACKAGES cifs-utils keyutils" [ "$PACKMANAGER" = "apt" ] && PACKAGES="$PACKAGES cifs-utils keyutils"
fi fi
COMMAND="smbclient" COMMAND="smbclient"
if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then
[ "$VERBOSE" = true ] && echo "$COMMAND required" [ "$VERBOSE" = true ] && echo "$COMMAND required"
[ "$PACKMANAGER" = "apk" ] && PACKAGES="$PACKAGES samba samba-client" [ "$PACKMANAGER" = "apk" ] && PACKAGES="$PACKAGES samba samba-client"
[ "$PACKMANAGER" = "apt" ] && PACKAGES="$PACKAGES samba smbclient" [ "$PACKMANAGER" = "apt" ] && PACKAGES="$PACKAGES samba smbclient"
fi fi
COMMAND="openvpn" COMMAND="openvpn"
if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then
[ "$VERBOSE" = true ] && echo "$COMMAND required" [ "$VERBOSE" = true ] && echo "$COMMAND required"
[ "$PACKMANAGER" = "apk" ] && PACKAGES="$PACKAGES coreutils openvpn" [ "$PACKMANAGER" = "apk" ] && PACKAGES="$PACKAGES coreutils openvpn"
[ "$PACKMANAGER" = "apt" ] && PACKAGES="$PACKAGES coreutils openvpn" [ "$PACKMANAGER" = "apt" ] && PACKAGES="$PACKAGES coreutils openvpn"
fi fi
COMMAND="jq" COMMAND="jq"
if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then
[ "$VERBOSE" = true ] && echo "$COMMAND required" [ "$VERBOSE" = true ] && echo "$COMMAND required"
[ "$PACKMANAGER" = "apk" ] && PACKAGES="$PACKAGES jq" [ "$PACKMANAGER" = "apk" ] && PACKAGES="$PACKAGES jq"
[ "$PACKMANAGER" = "apt" ] && PACKAGES="$PACKAGES jq" [ "$PACKMANAGER" = "apt" ] && PACKAGES="$PACKAGES jq"
fi fi
COMMAND="yamllint" COMMAND="yamllint"
if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then
[ "$VERBOSE" = true ] && echo "$COMMAND required" [ "$VERBOSE" = true ] && echo "$COMMAND required"
[ "$PACKMANAGER" = "apk" ] && PACKAGES="$PACKAGES yamllint" [ "$PACKMANAGER" = "apk" ] && PACKAGES="$PACKAGES yamllint"
[ "$PACKMANAGER" = "apt" ] && PACKAGES="$PACKAGES yamllint" [ "$PACKMANAGER" = "apt" ] && PACKAGES="$PACKAGES yamllint"
fi fi
COMMAND="git" COMMAND="git"
if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then
[ "$VERBOSE" = true ] && echo "$COMMAND required" [ "$VERBOSE" = true ] && echo "$COMMAND required"
[ "$PACKMANAGER" = "apk" ] && PACKAGES="$PACKAGES git" [ "$PACKMANAGER" = "apk" ] && PACKAGES="$PACKAGES git"
[ "$PACKMANAGER" = "apt" ] && PACKAGES="$PACKAGES git" [ "$PACKMANAGER" = "apt" ] && PACKAGES="$PACKAGES git"
fi fi
COMMAND="sponge" COMMAND="sponge"
if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then
[ "$VERBOSE" = true ] && echo "$COMMAND required" [ "$VERBOSE" = true ] && echo "$COMMAND required"
[ "$PACKMANAGER" = "apk" ] && PACKAGES="$PACKAGES moreutils" [ "$PACKMANAGER" = "apk" ] && PACKAGES="$PACKAGES moreutils"
[ "$PACKMANAGER" = "apt" ] && PACKAGES="$PACKAGES moreutils" [ "$PACKMANAGER" = "apt" ] && PACKAGES="$PACKAGES moreutils"
fi fi
COMMAND="sqlite3" COMMAND="sqlite3"
if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then
[ "$VERBOSE" = true ] && echo "$COMMAND required" [ "$VERBOSE" = true ] && echo "$COMMAND required"
[ "$PACKMANAGER" = "apk" ] && PACKAGES="$PACKAGES sqlite" [ "$PACKMANAGER" = "apk" ] && PACKAGES="$PACKAGES sqlite"
[ "$PACKMANAGER" = "apt" ] && PACKAGES="$PACKAGES sqlite3" [ "$PACKMANAGER" = "apt" ] && PACKAGES="$PACKAGES sqlite3"
fi fi
COMMAND="pip" COMMAND="pip"
if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then
[ "$VERBOSE" = true ] && echo "$COMMAND required" [ "$VERBOSE" = true ] && echo "$COMMAND required"
[ "$PACKMANAGER" = "apk" ] && PACKAGES="$PACKAGES py3-pip" [ "$PACKMANAGER" = "apk" ] && PACKAGES="$PACKAGES py3-pip"
[ "$PACKMANAGER" = "apt" ] && PACKAGES="$PACKAGES pip" [ "$PACKMANAGER" = "apt" ] && PACKAGES="$PACKAGES pip"
fi fi
COMMAND="wget" COMMAND="wget"
if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then
[ "$VERBOSE" = true ] && echo "$COMMAND required" [ "$VERBOSE" = true ] && echo "$COMMAND required"
[ "$PACKMANAGER" = "apk" ] && PACKAGES="$PACKAGES wget" [ "$PACKMANAGER" = "apk" ] && PACKAGES="$PACKAGES wget"
[ "$PACKMANAGER" = "apt" ] && PACKAGES="$PACKAGES wget" [ "$PACKMANAGER" = "apt" ] && PACKAGES="$PACKAGES wget"
fi fi
done done
#################### ####################
@@ -134,23 +134,23 @@ done
# Install apps # Install apps
[ "$VERBOSE" = true ] && echo "installing packages $PACKAGES" [ "$VERBOSE" = true ] && echo "installing packages $PACKAGES"
[ "$PACKMANAGER" = "apt" ] && apt-get update >/dev/null || true if [ "$PACKMANAGER" = "apt" ]; then apt-get update >/dev/null; fi
# Install apps one by one to allow failures # Install apps one by one to allow failures
ERROR=0 ERROR=0
for packagestoinstall in $PACKAGES; do for packagestoinstall in $PACKAGES; do
[ "$VERBOSE" = true ] && echo "... $packagestoinstall" [ "$VERBOSE" = true ] && echo "... $packagestoinstall"
if [ "$PACKMANAGER" = "apk" ]; then if [ "$PACKMANAGER" = "apk" ]; then
apk add --no-cache $packagestoinstall &>/dev/null || (echo "Error : $packagestoinstall not found" && ERROR=1) apk add --no-cache "$packagestoinstall" &>/dev/null || (echo "Error : $packagestoinstall not found" && touch /ERROR)
elif [ "$PACKMANAGER" = "apt" ]; then elif [ "$PACKMANAGER" = "apt" ]; then
apt-get install -yqq --no-install-recommends $packagestoinstall &>/dev/null || (echo "Error : $packagestoinstall not found" && ERROR=1) apt-get install -yqq --no-install-recommends "$packagestoinstall" &>/dev/null || (echo "Error : $packagestoinstall not found" && touch /ERROR)
fi fi
[ "$VERBOSE" = true ] && echo "... $packagestoinstall done" [ "$VERBOSE" = true ] && echo "... $packagestoinstall done"
done done
# Clean after install # Clean after install
[ "$VERBOSE" = true ] && echo "Cleaning apt cache" [ "$VERBOSE" = true ] && echo "Cleaning apt cache"
[ "$PACKMANAGER" = "apt" ] && apt-get clean >/dev/null || true if [ "$PACKMANAGER" = "apt" ]; then apt-get clean >/dev/null; fi
# Replace nginx if installed # Replace nginx if installed
if ls /etc/nginx2 1>/dev/null 2>&1; then if ls /etc/nginx2 1>/dev/null 2>&1; then
@@ -166,10 +166,10 @@ fi
####################### #######################
for files in "/scripts" "/etc/services.d" "/etc/cont-init.d"; do for files in "/scripts" "/etc/services.d" "/etc/cont-init.d"; do
# Next directory if does not exists # Next directory if does not exists
if ! ls $files 1>/dev/null 2>&1; then continue; fi if ! ls $files 1>/dev/null 2>&1; then continue; fi
# Bashio # Bashio
if grep -q -rnw "$files/" -e 'bashio' && [ ! -f "/usr/bin/bashio" ]; then if grep -q -rnw "$files/" -e 'bashio' && [ ! -f "/usr/bin/bashio" ]; then
[ "$VERBOSE" = true ] && echo "install bashio" [ "$VERBOSE" = true ] && echo "install bashio"
@@ -180,13 +180,13 @@ for files in "/scripts" "/etc/services.d" "/etc/cont-init.d"; do
ln -s /usr/lib/bashio/bashio /usr/bin/bashio ln -s /usr/lib/bashio/bashio /usr/bin/bashio
rm -rf /tmp/bashio rm -rf /tmp/bashio
fi fi
# Lastversion # Lastversion
if grep -q -rnw "$files/" -e 'lastversion'; then if grep -q -rnw "$files/" -e 'lastversion'; then
[ "$VERBOSE" = true ] && echo "install lastversion" [ "$VERBOSE" = true ] && echo "install lastversion"
pip install lastversion pip install lastversion
fi fi
# Tempio # Tempio
if grep -q -rnw "$files/" -e 'tempio' && [ ! -f "/usr/bin/tempio" ]; then if grep -q -rnw "$files/" -e 'tempio' && [ ! -f "/usr/bin/tempio" ]; then
[ "$VERBOSE" = true ] && echo "install tempio" [ "$VERBOSE" = true ] && echo "install tempio"
@@ -195,24 +195,24 @@ for files in "/scripts" "/etc/services.d" "/etc/cont-init.d"; do
curl -L -f -s -o /usr/bin/tempio "https://github.com/home-assistant/tempio/releases/download/${TEMPIO_VERSION}/tempio_${BUILD_ARCH}" curl -L -f -s -o /usr/bin/tempio "https://github.com/home-assistant/tempio/releases/download/${TEMPIO_VERSION}/tempio_${BUILD_ARCH}"
chmod a+x /usr/bin/tempio chmod a+x /usr/bin/tempio
fi fi
# Mustache # Mustache
COMMAND="mustache" COMMAND="mustache"
if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then if grep -q -rnw "$files/" -e "$COMMAND" && ! command -v $COMMAND &>/dev/null; then
[ "$VERBOSE" = true ] && echo "$COMMAND required" [ "$VERBOSE" = true ] && echo "$COMMAND required"
[ "$PACKMANAGER" = "apk" ] && apk add --no-cache go npm && [ "$PACKMANAGER" = "apk" ] && apk add --no-cache go npm &&
apk upgrade --no-cache && apk upgrade --no-cache &&
apk add --no-cache --virtual .build-deps build-base git go && apk add --no-cache --virtual .build-deps build-base git go &&
go get -u github.com/quantumew/mustache-cli && go get -u github.com/quantumew/mustache-cli &&
cp "$GOPATH"/bin/* /usr/bin/ && cp "$GOPATH"/bin/* /usr/bin/ &&
rm -rf "$GOPATH" /var/cache/apk/* /tmp/src && rm -rf "$GOPATH" /var/cache/apk/* /tmp/src &&
apk del .build-deps xz build-base apk del .build-deps xz build-base
[ "$PACKMANAGER" = "apt" ] && apt-get update && [ "$PACKMANAGER" = "apt" ] && apt-get update &&
apt-get install -yqq go npm node-mustache apt-get install -yqq go npm node-mustache
fi fi
done done
if [ $ERROR = 1 ]; then if [ -f /ERROR ]; then
exit 1 exit 1
fi fi