mirror of
https://github.com/wireadmin/wireadmin
synced 2025-01-23 20:36:58 +00:00
44 lines
1.4 KiB
Bash
44 lines
1.4 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
|
||
|
|
||
|
to_camel_case() {
|
||
|
echo "${1}" | awk -F_ '{for(i=1;i<=NF;i++) $i=toupper(substr($i,1,1)) tolower(substr($i,2));}1' OFS=""
|
||
|
}
|
||
|
|
||
|
generate_tor_config() {
|
||
|
# IP address of the container
|
||
|
local inet_address="$(hostname -i | awk '{print $1}')"
|
||
|
|
||
|
sed -i "s/{{INET_ADDRESS}}/$inet_address/g" "${TOR_CONFIG}"
|
||
|
|
||
|
# any other environment variables that start with TOR_ are added to the torrc
|
||
|
# file
|
||
|
env | grep ^TOR_ | sed -e 's/TOR_//' -e 's/=/ /' | while read -r line; do
|
||
|
key=$(echo "$line" | awk '{print $1}')
|
||
|
value=$(echo "$line" | awk '{print $2}')
|
||
|
key=$(to_camel_case "$key")
|
||
|
echo "$key $value" >>"${TOR_CONFIG}"
|
||
|
done
|
||
|
|
||
|
# Removing duplicated tor options
|
||
|
awk -F= '!a[tolower($1)]++' "${TOR_CONFIG}" >"/tmp/$(basename "${TOR_CONFIG}")" &&
|
||
|
mv "/tmp/$(basename "${TOR_CONFIG}")" "${TOR_CONFIG}"
|
||
|
|
||
|
# Checking if there is /etc/torrc.d folder and if there is
|
||
|
# any file in it, adding them to the torrc file
|
||
|
local torrc_files=$(find /etc/torrc.d -type f -name "*.conf")
|
||
|
if [ -n "${torrc_files}" ]; then
|
||
|
for file in ${torrc_files}; do
|
||
|
cat "$file" >>"${TOR_CONFIG}"
|
||
|
done
|
||
|
fi
|
||
|
|
||
|
# Remove comment line with single Hash
|
||
|
sed -i '/^#\([^#]\)/d' "${TOR_CONFIG}"
|
||
|
# Remove options with no value. (KEY[:space:]{...VALUE})
|
||
|
sed -i '/^[^ ]* $/d' "${TOR_CONFIG}"
|
||
|
# Remove double empty lines
|
||
|
sed -i '/^$/N;/^\n$/D' "${TOR_CONFIG}"
|
||
|
}
|
||
|
|