Update npm_update.sh

This commit is contained in:
tteckster 2022-02-28 19:36:26 -05:00 committed by GitHub
parent 7cf689b19a
commit ffe9034536
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 35 additions and 19 deletions

View File

@ -1,6 +1,30 @@
#!/usr/bin/env bash #!/usr/bin/env bash
RELEASE=$(curl -s https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest \
| grep "tag_name" \
| awk '{print substr($2, 3, length($2)-4) }') \
RD=`echo "\033[01;31m"`
BL=`echo "\033[36m"`
CM='\xE2\x9C\x94\033'
GN=`echo "\033[1;92m"`
CL=`echo "\033[m"`
function update_info {
echo -e "${RD}
_ _ _____ __ __
| \ | | | __ \ | \/ |
| \| | | |__) | | \ / |
| | | ___/ | |\/| |
| |\ | | | | | | |
|_| \_| |_| |_| |_|
UPDATE v${RELEASE}
${CL}"
}
update_info
while true; do while true; do
read -p "This will update Nginx Proxy Manager LXC Container. Proceed(y/n)?" yn read -p "This will update Nginx Proxy Manager to v${RELEASE}. Proceed(y/n)?" yn
case $yn in case $yn in
[Yy]* ) break;; [Yy]* ) break;;
[Nn]* ) exit;; [Nn]* ) exit;;
@ -8,17 +32,13 @@ while true; do
esac esac
done done
clear clear
update_info
set -o errexit set -o errexit
set -o errtrace set -o errtrace
set -o nounset set -o nounset
set -o pipefail set -o pipefail
shopt -s expand_aliases shopt -s expand_aliases
alias die='EXIT=$? LINE=$LINENO error_exit' alias die='EXIT=$? LINE=$LINENO error_exit'
RD=`echo "\033[01;31m"`
BL=`echo "\033[36m"`
CM='\xE2\x9C\x94\033'
GN=`echo "\033[1;92m"`
CL=`echo "\033[m"`
trap die ERR trap die ERR
trap 'die "Script interrupted."' INT trap 'die "Script interrupted."' INT
@ -34,11 +54,7 @@ function msg() {
local TEXT="$1" local TEXT="$1"
echo -e "$TEXT" echo -e "$TEXT"
} }
T="$(date +%s)" T="$(date +%M)"
echo -en "${GN} Updating Container OS... "
apt-get update &>/dev/null
apt-get -qqy upgrade &>/dev/null
echo -e "${CM}${CL} \r"
if [ -f /lib/systemd/system/npm.service ]; then if [ -f /lib/systemd/system/npm.service ]; then
echo -en "${GN} Prep For Update... " echo -en "${GN} Prep For Update... "
@ -62,9 +78,9 @@ echo -en "${GN} Cleaning Old Files... "
exit exit
fi fi
echo -en "${GN} Downloading NPM v2.9.16... " echo -en "${GN} Downloading NPM v${RELEASE}... "
wget -q https://codeload.github.com/NginxProxyManager/nginx-proxy-manager/tar.gz/v2.9.16 -O - | tar -xz &>/dev/null wget -q https://codeload.github.com/NginxProxyManager/nginx-proxy-manager/tar.gz/v${RELEASE} -O - | tar -xz &>/dev/null
cd ./nginx-proxy-manager-2.9.16 cd ./nginx-proxy-manager-${RELEASE}
echo -e "${CM}${CL} \r" echo -e "${CM}${CL} \r"
echo -en "${GN} Setting up Enviroment... " echo -en "${GN} Setting up Enviroment... "
@ -72,8 +88,8 @@ ln -sf /usr/bin/python3 /usr/bin/python
ln -sf /usr/bin/certbot /opt/certbot/bin/certbot ln -sf /usr/bin/certbot /opt/certbot/bin/certbot
ln -sf /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx ln -sf /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx
ln -sf /usr/local/openresty/nginx/ /etc/nginx ln -sf /usr/local/openresty/nginx/ /etc/nginx
sed -i "s+0.0.0+#v2.9.16+g" backend/package.json sed -i "s+0.0.0+${RELEASE}+g" backend/package.json
sed -i "s+0.0.0+#v2.9.16+g" frontend/package.json sed -i "s+0.0.0+${RELEASE}+g" frontend/package.json
sed -i 's+^daemon+#daemon+g' docker/rootfs/etc/nginx/nginx.conf sed -i 's+^daemon+#daemon+g' docker/rootfs/etc/nginx/nginx.conf
NGINX_CONFS=$(find "$(pwd)" -type f -name "*.conf") NGINX_CONFS=$(find "$(pwd)" -type f -name "*.conf")
for NGINX_CONF in $NGINX_CONFS; do for NGINX_CONF in $NGINX_CONFS; do
@ -152,10 +168,10 @@ systemctl enable npm &>/dev/null
systemctl start openresty systemctl start openresty
systemctl start npm systemctl start npm
echo -e "${CM}${CL} \r" echo -e "${CM}${CL} \r"
T="$(($(date +%s)-T))" TS="$(($(date +%M)-T))"
IP=$(hostname -I | cut -f1 -d ' ') IP=$(hostname -I | cut -f1 -d ' ')
echo -e "${GN}Successfully Updated Nginx Proxy Manager, and it took ${RD}${T} seconds.${CL} echo -e "${GN}Successfully Updated Nginx Proxy Manager to ${RD}${RELEASE}${CL} and it took ${RD}${TS} minutes.${CL}
${BL}NPM should be reachable at https://${IP}:81 ${CL} NPM should be reachable at ${BL}http://${IP}:81 ${CL}
" "