Преглед изворни кода

Integrated tinyproxy to allow private trackers to see us browsing from the same ip address

master
Jeremy Andrews пре 7 година
родитељ
комит
bd94feb26d
1 измењених фајлова са 121 додато и 0 уклоњено
  1. 121
    0
      tinyproxy/run.sh

+ 121
- 0
tinyproxy/run.sh Прегледај датотеку

@@ -0,0 +1,121 @@
#!/bin/bash

# Global vars
PROG_NAME='DockerTinyproxy'
PROXY_CONF='/etc/tinyproxy.conf'
TAIL_LOG='/var/log/tinyproxy/tinyproxy.log'

# Usage: screenOut STATUS message
screenOut() {
timestamp=$(date +"%H:%M:%S")
if [ "$#" -ne 2 ]; then
status='INFO'
message="$1"
else
status="$1"
message="$2"
fi

echo -e "[$PROG_NAME][$status][$timestamp]: $message"
}

# Usage: checkStatus $? "Error message" "Success message"
checkStatus() {
case $1 in
0)
screenOut "SUCCESS" "$3"
;;
1)
screenOut "ERROR" "$2 - Exiting..."
exit 1
;;
*)
screenOut "ERROR" "Unrecognised return code."
;;
esac
}

stopService() {
screenOut "Checking for running Tinyproxy service..."
if [ "$(pidof tinyproxy)" ]; then
screenOut "Found. Stopping Tinyproxy service for pre-configuration..."
killall tinyproxy
checkStatus $? "Could not stop Tinyproxy service." \
"Tinyproxy service stopped successfully."
else
screenOut "Tinyproxy service not running."
fi
}

parseAccessRules() {
list=''
for ARG in $@; do
line="Allow\t$ARG\n"
list+=$line
done
echo "$list" | sed 's/.\{2\}$//'
}

setMiscConfig() {
sed -i -e"s,^MinSpareServers ,MinSpareServers\t1 ," $PROXY_CONF
checkStatus $? "Set MinSpareServers - Could not edit $PROXY_CONF" \
"Set MinSpareServers - Edited $PROXY_CONF successfully."

sed -i -e"s,^MaxSpareServers ,MaxSpareServers\t1 ," $PROXY_CONF
checkStatus $? "Set MinSpareServers - Could not edit $PROXY_CONF" \
"Set MinSpareServers - Edited $PROXY_CONF successfully."
sed -i -e"s,^StartServers ,StartServers\t1 ," $PROXY_CONF
checkStatus $? "Set MinSpareServers - Could not edit $PROXY_CONF" \
"Set MinSpareServers - Edited $PROXY_CONF successfully."
}

enableLogFile() {
touch /var/log/tinyproxy/tinyproxy.log
sed -i -e"s,^#LogFile,LogFile," $PROXY_CONF
}

setAccess() {
if [[ "$1" == *ANY* ]]; then
sed -i -e"s/^Allow /#Allow /" $PROXY_CONF
checkStatus $? "Allowing ANY - Could not edit $PROXY_CONF" \
"Allowed ANY - Edited $PROXY_CONF successfully."
else
sed -i "s,^Allow 127.0.0.1,$1," $PROXY_CONF
checkStatus $? "Allowing IPs - Could not edit $PROXY_CONF" \
"Allowed IPs - Edited $PROXY_CONF successfully."
fi
}

startService() {
screenOut "Starting Tinyproxy service..."
/usr/sbin/tinyproxy
checkStatus $? "Could not start Tinyproxy service." \
"Tinyproxy service started successfully."
}

tailLog() {
screenOut "Tailing Tinyproxy log..."
tail -f $TAIL_LOG
checkStatus $? "Could not tail $TAIL_LOG" \
"Stopped tailing $TAIL_LOG"
}

# Start script
echo && screenOut "$PROG_NAME script started..."
# Stop Tinyproxy if running
stopService
# Parse ACL from args
export rawRules="$@" && parsedRules=$(parseAccessRules $rawRules) && unset rawRules
# Set ACL in Tinyproxy config
setAccess $parsedRules
# Enable log to file
#enableLogFile
# Start Tinyproxy
startService
# Tail Tinyproxy log
#tailLog
# End
screenOut "$PROG_NAME script ended." && echo
exit 0

Loading…
Откажи
Сачувај