1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-12-10 21:24:20 +01:00
fab-manager/scripts/nginx-packs-directive.sh

91 lines
2.4 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
yq() {
docker run --rm -i -v "${NGINX_PATH}:/workdir" --user "$UID" mikefarah/yq:4 "$@"
}
config()
{
if [ "$(whoami)" = "root" ]
then
echo "It is not recommended to run this script as root. As a normal user, elevation will be prompted if needed."
[[ "$YES_ALL" = "true" ]] && confirm="y" || read -rp "Continue anyway? (Y/n) " confirm </dev/tty
if [[ "$confirm" = "n" ]]; then exit 1; fi
else
if ! groups | grep docker; then
echo "Please add your current user to the docker group."
echo "You can run the following as root: \"usermod -aG docker $(whoami)\", then logout and login again"
echo "current user is not allowed to use docker, exiting..."
exit 1
fi
fi
NGINX_PATH=$(pwd)
TYPE="NOT-FOUND"
[[ "$YES_ALL" = "true" ]] && confirm="y" || read -rp "Is Fab-manager installed at \"$NGINX_PATH\"? (y/N) " confirm </dev/tty
if [ "$confirm" = "y" ]; then
test_docker_compose
while [[ "$TYPE" = "NOT-FOUND" ]]
do
echo "nginx was not found at the current path, please specify the nginx installation path..."
read -e -rp "> " nginxpath </dev/tty
NGINX_PATH="${nginxpath}"
test_docker_compose
done
else
echo "Please run this script from the Fab-manager's installation folder"
exit 1
fi
SERVICE="$(yq eval '.services.*.image | select(. == "nginx*") | path | .[-2]' docker-compose.yml)"
}
test_docker_compose()
{
if [[ -f "$NGINX_PATH/docker-compose.yml" ]]
then
docker-compose -f "$NGINX_PATH/docker-compose.yml" ps | grep nginx
if [[ $? = 0 ]]
then
printf "nginx found at %s\n" "$NGINX_PATH"
TYPE="DOCKER-COMPOSE"
fi
fi
}
proceed_upgrade()
{
files=()
while IFS= read -r -d $'\0'; do
files+=("$REPLY")
done < <(find "$NGINX_PATH" -name "*.conf" -print0 2>/dev/null)
for file in "${files[@]}"; do
read -rp "Process \"$file\" (y/N)? " confirm </dev/tty
if [[ "$confirm" = "y" ]]; then
sed -i.bak -e 's:location ^~ /assets/ {:location ^~ /packs/ {:g' "$file"
echo "$file was successfully upgraded"
fi
done
}
docker_restart()
{
docker-compose -f "$NGINX_PATH/docker-compose.yml" restart "$SERVICE"
}
function trap_ctrlc()
{
echo "Ctrl^C, exiting..."
exit 2
}
upgrade_directive()
{
trap "trap_ctrlc" 2 # SIGINT
config
proceed_upgrade
docker_restart
printf "upgrade complete\n"
}
upgrade_directive "$@"