#!/usr/bin/env bash # @file Privoxy Configuration # @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) ### Configure variables if [ -d /Applications ] && [ -d /System ]; then ### macOS PRIVOXY_CONFIG_DIR=/usr/local/etc/privoxy else ### Linux PRIVOXY_CONFIG_DIR=/etc/privoxy fi PRIVOXY_CONFIG="$PRIVOXY_CONFIG_DIR/config" if command -v privoxy > /dev/null; then if [ -f "${XDG_CONFIG_HOME:-HOME/.config}/privoxy/config" ]; then sudo mkdir -p "PRIVOXY_CONFIG_DIR" logg info "Copying ${XDG_CONFIG_HOME:-HOME/.config}/privoxy/config to $PRIVOXY_CONFIG" sudo cp -f "${XDG_CONFIG_HOME:-HOME/.config}/privoxy/config" "$PRIVOXY_CONFIG" logg info "Running sudo chmod 600 $PRIVOXY_CONFIG" sudo chmod 600 "$PRIVOXY_CONFIG" if command -v add-usergroup > /dev/null; then sudo add-usergroup "$USER" privoxy fi logg info 'Applying proper permissions to Privoxy configuration' sudo chown privoxy:privoxy "$PRIVOXY_CONFIG" 2> /dev/null || sudo chown privoxy:$(id -g -n) "$PRIVOXY_CONFIG" if [ -d "${HOMEBREW_PREFIX:-/opt/homebrew}/etc/privoxy" ] && [ ! -f "${HOMEBREW_PREFIX:-/opt/homebrew}/etc/privoxy/config" ]; then logg info "Symlinking $PRIVOXY_CONFIG to ${HOMEBREW_PREFIX:-/opt/homebrew}/etc/privoxy/config" ln -s "$PRIVOXY_CONFIG" "${HOMEBREW_PREFIX:-/opt/homebrew}/etc/privoxy/config" fi ### Restart Privoxy after configuration is applied if [ -d /Applications ] && [ -d /System ]; then ### macOS logg info 'Running brew services restart privoxy' brew services restart privoxy else ### Linux if [[ ! "$(test -d /proc && grep Microsoft /proc/version > /dev/null)" ]]; then logg info 'Running sudo systemctl enable / restart privoxy' sudo systemctl enable privoxy sudo systemctl restart privoxy else logg info 'The system is a WSL environment so the Privoxy systemd service will not be enabled / restarted' fi fi else logg info "${XDG_CONFIG_HOME:-HOME/.config}/privoxy/config is missing so skipping set up of Privoxy" fi else logg info 'privoxy is not installed or not available in the PATH' fi