#!/usr/bin/env bash
# Set bash options
[ -n "$DEBUG" ] && set -x
set -o pipefail
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SQUID_USER="${SQUID_USER:-squid}"
SQUID_LOG_DIR="${SQUID_LOG_DIR:-/data/log/squid}"
REDIRECT_URL="${REDIRECT_URL:-}"
BLOCKLIST="${BLOCKLIST:-https://github.com/casjay/resources/raw/main/files/shallalist.tar.gz}"
BLOCKED_CATEGORIES="${BLOCKED_CATEGORIES:-adv,aggressive,porn,spyware,violence,warez}"

DB_LOCATION="/data/squidguard/db"
LOG_LOCATION="/data/log"

echo "Downloading blocklist..."
wget -q "${BLOCKLIST}" -O /tmp/blocklist.tgz

echo "Extracting blocklist..."
mkdir -p /tmp/blocklist
tar xzf /tmp/blocklist.tgz --strip-components=1 -C /tmp/blocklist

for CATEGORY in $(echo ${BLOCKED_CATEGORIES} | sed "s/,/ /g"); do
  if [ ! -d "/tmp/blocklist/${CATEGORY}" ]; then
    echo "Category ${CATEGORY} not available!"
    exit 1
  fi
  cp -r "/tmp/blocklist/${CATEGORY}" "${DB_LOCATION}/"
done

NOT_LIST="${BLOCKED_CATEGORIES//,/ !}"

chown -R ${SQUID_USER}:${SQUID_USER} "${DB_LOCATION}"
chown -R ${SQUID_USER}:${SQUID_USER} "${LOG_LOCATION}"
chown -R ${SQUID_USER}:${SQUID_USER} "${CONFIG_FILE}"

echo "Cleanup..."
rm -rf /tmp/*

squid -k reconfigure
