From 96540317a71d5ebdb0932df403b2c3287fe09936 Mon Sep 17 00:00:00 2001
From: Bob Mottram <bob@freedombone.net>
Date: Fri, 4 May 2018 13:51:00 +0100
Subject: [PATCH] Command to show Tor health status

---
 src/freedombone-tor-health | 62 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)
 create mode 100755 src/freedombone-tor-health

diff --git a/src/freedombone-tor-health b/src/freedombone-tor-health
new file mode 100755
index 000000000..e7dc427e1
--- /dev/null
+++ b/src/freedombone-tor-health
@@ -0,0 +1,62 @@
+#!/bin/bash
+#  _____               _           _
+# |   __|___ ___ ___ _| |___ _____| |_ ___ ___ ___
+# |   __|  _| -_| -_| . | . |     | . | . |   | -_|
+# |__|  |_| |___|___|___|___|_|_|_|___|___|_|_|___|
+#
+#                              Freedom in the Cloud
+#
+# Returns a health status for Tor
+#
+# License
+# =======
+#
+# Copyright (C) 2018 Bob Mottram <bob@freedombone.net>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+PROJECT_NAME='freedombone'
+
+export TEXTDOMAIN=${PROJECT_NAME}-tor-health
+export TEXTDOMAINDIR="/usr/share/locale"
+
+d1=$(date --date="-10 min" "+%b %d %H:%M"):00
+d2=$(date "+%b %d %H:%M"):00
+ctr=0
+echo -n '' > /var/log/tor/notices_new.log
+while read -r line; do
+    datestr=$(echo "$line" | awk -F '.' '{print $1}')
+    if [[ "$datestr" > "$d1" && "$datestr" < "$d2" || "$datestr" =~ $d2 ]]; then
+        if [[ "$line" == *'Retrying'* ]]; then
+            ctr=$((ctr+1))
+        fi
+        echo "$line" >> /var/log/tor/notices_new.log
+    fi
+done < /var/log/tor/notices.log
+
+mv /var/log/tor/notices_new.log /var/log/tor/notices.log
+chown -R debian-tor:adm /var/log/tor
+
+if [ $ctr -gt 5 ]; then
+    echo $'Failed'
+    exit 0
+fi
+
+if [ $ctr -gt 0 ]; then
+    echo $'Poor'
+    exit 0
+fi
+
+echo $'Good'
+exit 0
-- 
GitLab