2023-01-28 19:49:06 -08:00
{{- if (ne .host.distro.family "windows") -}}
#!/usr/bin/env bash
2023-04-12 17:36:02 -07:00
# @file Privoxy Configuration
2023-03-30 22:08:20 -07:00
# @brief This script applies the Privoxy configuration stored at ` ${ XDG_CONFIG_HOME : - HOME / . config } /privoxy/config` to the system and then restarts Privoxy
# @description
# Privoxy is a web proxy that can be combined with Tor to provide an HTTPS / HTTP proxy that can funnel all traffic
# through Tor. This script:
#
# 1. Determines the system configuration file location
# 2. Applies the configuration stored at ` ${ XDG_CONFIG_HOME : - HOME / . config } /privoxy/config`
# 3. Enables and restarts the Privoxy service with the new configuration
#
# ## Links
#
# * [Privoxy configuration](https://github.com/megabyte-labs/install.doctor/tree/master/home/dot_config/privoxy/config)
2023-01-28 19:49:06 -08:00
2023-01-28 20:47:57 -08:00
# privoxy config hash: {{ include (joinPath .host.home ".config" "privoxy" "config") | sha256sum }}
2023-01-28 19:49:06 -08:00
{{ includeTemplate "universal/profile" }}
{{ includeTemplate "universal/logg" }}
2023-03-30 22:08:20 -07:00
# @description Define the Privoxy configuration location based on whether system is macOS or Linux
2023-01-28 19:49:06 -08:00
if [ -d /Applications ] && [ -d /System ]; then
# macOS
2023-11-06 22:25:00 -08:00
if [ -d "/usr/local/etc/privoxy" ]; then
PRIVOXY_CONFIG_DIR=/usr/local/etc/privoxy
elif [ -d " $ HOMEBREW_PREFIX /etc/privoxy" ]; then
PRIVOXY_CONFIG_DIR=" $ HOMEBREW_PREFIX /etc/privoxy"
else
logg warn 'Unable to detect Privoxy configuration directory'
fi
2023-01-28 19:49:06 -08:00
else
# Linux
PRIVOXY_CONFIG_DIR=/etc/privoxy
fi
PRIVOXY_CONFIG=" $ PRIVOXY_CONFIG_DIR /config"
2023-03-30 22:08:20 -07:00
# @description Copy Privoxy configuration stored at ` ${ XDG_CONFIG_HOME : - HOME / . config } /privoxy/config` to the system location
2023-01-28 19:49:06 -08:00
if command -v privoxy > /dev/null; then
if [ -d " $ PRIVOXY_CONFIG_DIR " ]; then
2023-01-28 20:47:57 -08:00
sudo cp -f " ${ XDG_CONFIG_HOME : - HOME / . config } /privoxy/config" " $ PRIVOXY_CONFIG "
2023-01-28 19:49:06 -08:00
sudo chmod 600 " $ PRIVOXY_CONFIG "
2023-07-08 20:32:19 -07:00
if command -v add-user > /dev/null; then
sudo add-user privoxy
fi
2023-11-26 22:46:35 -08:00
sudo chown privoxy:privoxy " $ PRIVOXY_CONFIG " 2> /dev/null || sudo chown privoxy:$(id -g -n) " $ PRIVOXY_CONFIG "
2023-01-28 19:49:06 -08:00
2023-03-30 22:08:20 -07:00
# @description Restart Privoxy after configuration is applied
2023-01-28 19:49:06 -08:00
if [ -d /Applications ] && [ -d /System ]; then
# macOS
brew services restart privoxy
else
2023-02-15 19:14:33 -08:00
if [[ ! "$(test -d /proc && grep Microsoft /proc/version > /dev/null)" ]]; then
2023-01-28 20:47:57 -08:00
# Linux
sudo systemctl enable privoxy
2023-02-01 13:17:18 -08:00
sudo systemctl restart privoxy
2023-01-28 20:47:57 -08:00
else
logg info 'The system is a WSL environment so the Privoxy systemd service will not be enabled / restarted'
fi
2023-01-28 19:49:06 -08:00
fi
else
logg warn 'The '" $ PRIVOXY_CONFIG_DIR "' directory is missing'
fi
else
2023-11-04 18:46:18 -07:00
logg logg 'privoxy is missing from the PATH - skipping configuration'
2023-01-28 19:49:06 -08:00
fi
{{ end -}}