#!/bin/bash

# A script to download the source code for NGINX dynamic modules.

shopt -s nullglob dotglob
directory=(dependencies/*)
if [ ${#directory[@]} -gt 0 ]; then
    read -p "Found Dependency Directory. Did you want to wipe? (y/n) " -n 1 -r
    if [[ $REPLY =~ ^[Yy]$ ]]
    then
        rm -R dependencies
        printf '\nStarting Resync\n'
    else
        printf "\nCancelled Sync\n"
        exit 0
    fi
fi

apt-get update
apt-get -y install git

mkdir dependencies
cd dependencies

echo "Cloning Naxsi..."
NAXSI_VERSION=1.7
wget "https://github.com/wargio/naxsi/releases/download/$NAXSI_VERSION/naxsi-$NAXSI_VERSION-src-with-deps.tar.gz"
mkdir -p naxsi
tar -C naxsi -xzf naxsi-$NAXSI_VERSION-src-with-deps.tar.gz

echo "Cloning Headers More..."
git clone https://github.com/openresty/headers-more-nginx-module.git

echo "Cloning Echo..."
git clone https://github.com/openresty/echo-nginx-module.git

echo "Cloning Lua Module and its dependencies..."
#some required stuff for lua/luajit. Versions should be checked and updated with every install/update or nginx won't boot!
git clone https://github.com/openresty/lua-nginx-module
git clone https://github.com/openresty/luajit2
cd luajit2
git checkout v2.1-agentzh
cd ..
git clone https://github.com/vision5/ngx_devel_kit
git clone https://github.com/openresty/lua-resty-string
git clone https://github.com/cloudflare/lua-resty-cookie
git clone https://github.com/bungle/lua-resty-session

echo "Cloning Brotli..."
git clone https://github.com/google/ngx_brotli.git
cd ngx_brotli
echo "Initializing Brotli submodules..."
git submodule update --init
cd ..

clear
echo "Dependencies have been got!"
exit 0