summaryrefslogtreecommitdiff
path: root/www/nginx-ultimate-bad-bot-blocker/files/patch-update-ngxblocker
blob: 7a0f71eb9fb23385f7c249ab3214690092a9f9c2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
--- update-ngxblocker
+++ update-ngxblocker
@@ -148,6 +148,8 @@ update_paths() {
 	# updates hard coded bots.d path in globalblacklist.conf
 	local blacklist=$1 include_paths= dir= x=
 
+	case ${OS} in
+	Linux)
 	if ! grep "$BOTS_DIR" $blacklist 1>/dev/null; then
 		if [ -d $BOTS_DIR ]; then
 			printf "${BOLDGREEN}Updating bots.d path${RESET}: ${BOLDWHITE}$BOTS_DIR => $blacklist${RESET}\n"
@@ -163,6 +165,12 @@ update_paths() {
 			update_paths $blacklist
 		fi
 	fi
+	;;
+	*BSD)
+		printf "${BOLDGREEN}Updating bots.d path${RESET}\n"
+		/usr/bin/sed -i "" -e 's:include .*nginx/:include :g' ${BOTS_DIR}/*.conf ${CONF_DIR}/*.conf
+		;;
+	esac
 }
 
 sanitize_path() {
@@ -319,11 +327,39 @@ get_options() {
 	INSTALL_INC="$INSTALLER -b $BOTS_DIR -c $CONF_DIR -x"
 }
 
+nginx_check_status() {
+	local pidof_path=$(find_binary pidof)
+
+	case ${OS} in
+	Linux)
+		$pidof_path nginx 1>/dev/null
+		return $?
+		;;
+	FreeBSD)
+		/usr/sbin/service nginx status | /usr/bin/grep -q running
+		return $?
+		;;
+	esac
+}
+
+nginx_reload() {
+	local nginx_path=$(find_binary nginx)
+
+	case ${OS} in
+	Linux)
+		$nginx_path -s reload 2>&1 >/dev/null
+		return $?
+		;;
+	FreeBSD)
+		/usr/sbin/service nginx reload >/dev/null 2>&1
+		return $?
+		;;
+	esac
+}
+
 main() {
 	local REPO=https://raw.githubusercontent.com/mitchellkrogza/nginx-ultimate-bad-bot-blocker/master
 	local file=globalblacklist.conf remote_dir=conf.d url= output= update= status= tmp= retval=
-	local nginx_path=$(find_binary nginx)
-	local pidof_path=$(find_binary pidof)
 
 	# require root
 	if [ "$(id -u)" != "0" ]; then
@@ -370,9 +406,10 @@ main() {
 		if [ $retval = 0 ]; then
 
 			# use full paths to workaround crontabs without $PATH configured
-			if $pidof_path nginx 1>/dev/null; then
+			nginx_check_status
+			if [ $? -eq 0 ]; then
 
-				$nginx_path -s reload 2>&1 >/dev/null
+				nginx_reload
 
 				if [ $? = 0 ]; then
 					status="${BOLDGREEN}[OK]${RESET}"