reachable-watcher 1.0.102 → 1.0.104

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reachable-watcher",
3
- "version": "1.0.102",
3
+ "version": "1.0.104",
4
4
  "license": "CC-BY-3.0",
5
5
  "description": "Check status codes of web servers and sends notification e-mails",
6
6
  "homepage": "https://torben.website/reachable-watcher",
@@ -22,7 +22,3 @@ NotifyAccess=all
22
22
 
23
23
  [Install]
24
24
  WantedBy=multi-user.target
25
- # region vim modline
26
- # vim: set tabstop=4 shiftwidth=4 expandtab:
27
- # vim: foldmethod=marker foldmarker=region,endregion:
28
- # endregion
@@ -20,21 +20,21 @@ elif [ -f "/usr/lib/bashlink/module.sh" ]; then
20
20
  # shellcheck disable=SC1091
21
21
  source "/usr/lib/bashlink/module.sh"
22
22
  else
23
- declare -gr reachableWatcher_bashlink_path="$(
23
+ declare -gr RW_BASHLINK_PATH="$(
24
24
  mktemp --directory --suffix -reachable-watcher-bashlink
25
25
  )/bashlink/"
26
- mkdir "$reachableWatcher_bashlink_path"
26
+ mkdir "$RW_BASHLINK_PATH"
27
27
  if wget \
28
28
  https://torben.website/bashlink/data/distributionBundle/module.sh \
29
- --output-document "${reachableWatcher_bashlink_path}module.sh"
29
+ --output-document "${RW_BASHLINK_PATH}module.sh"
30
30
  then
31
- declare -gr bl_module_retrieve_remote_modules=true
31
+ declare -gr BL_MODULE_RETRIEVE_REMOTE_MODULES=true
32
32
  # shellcheck disable=SC1091
33
- source "${reachableWatcher_bashlink_path}/module.sh"
34
- rm --force --recursive "$reachableWatcher_bashlink_path"
33
+ source "${RW_BASHLINK_PATH}/module.sh"
34
+ rm --force --recursive "$RW_BASHLINK_PATH"
35
35
  else
36
36
  echo Needed bashlink library not found 1>&2
37
- rm --force --recursive "$reachableWatcher_bashlink_path"
37
+ rm --force --recursive "$RW_BASHLINK_PATH"
38
38
  exit 1
39
39
  fi
40
40
  fi
@@ -45,7 +45,7 @@ bl.module.import bashlink.logging
45
45
  bl.module.import bashlink.tools
46
46
  # endregion
47
47
  # region variables
48
- declare -gr reachableWatcher__documentation__='
48
+ declare -gr RW__DOCUMENTATION__='
49
49
  Watches a list of urls and sends mails to configured email addresses if one
50
50
  does not fit the expected status code.
51
51
 
@@ -75,19 +75,19 @@ declare -gr reachableWatcher__documentation__='
75
75
 
76
76
  Furthermore you should create a file "/etc/reachableWatcher" to overwrite
77
77
  the following variables. You need to set values for
78
- `reachableWatcher_urls_to_check` and
79
- `reachableWatcher_sender_e_mail_address` at least:
78
+ `RW_URLS_TO_CHECK` and
79
+ `RW_SENDER_E_MAIL_ADDRESS` at least:
80
80
 
81
81
  ```bash
82
- reachableWatcher_sender_e_mail_address="ACCOUNT_E_MAIL_ADDRESS"
83
- declare -A reachableWatcher_urls_to_check=(
82
+ RW_SENDER_E_MAIL_ADDRESS="ACCOUNT_E_MAIL_ADDRESS"
83
+ declare -A RW_URLS_TO_CHECK=(
84
84
  ["URL1"]="200 RECIPIENT_E_MAIL_ADDRESS"
85
85
  ["URL2"]="200 RECIPIENT_E_MAIL_ADDRESS ANOTHER_RECIPIENT_E_MAIL_ADDRESS"
86
86
  ...
87
87
  )
88
88
  ```
89
89
  '
90
- declare -agr reachableWatcher__dependencies__=(
90
+ declare -agr RW__DEPENDENCIES__=(
91
91
  bash
92
92
  curl
93
93
  date
@@ -96,14 +96,14 @@ declare -agr reachableWatcher__dependencies__=(
96
96
  sleep
97
97
  )
98
98
  ## region default options
99
- declare -ag reachableWatcher_urls_to_check=()
99
+ declare -ag RW_URLS_TO_CHECK=()
100
100
  # Wait for 5 minutes (60 * 5 = 300).
101
- declare -ig reachableWatcher_delay_between_two_consequtive_requests_in_seconds=300
102
- declare -g reachableWatcher_date_time_format='%T:%N at %d.%m.%Y'
103
- declare -g reachableWatcher_sender_e_mail_address=''
104
- declare -g reachableWatcher_replier_e_mail_address="$reachableWatcher_sender_e_mail_address"
105
- declare -g reachableWatcher_verbose=false
106
- declare -g reachableWatcher_name=NODE_NAME
101
+ declare -ig RW_DELAY_BETWEEN_TWO_CONSEQUTIVE_REQUESTS_IN_SECONDS=300
102
+ declare -g RW_DATE_TIME_FORMAT='%T:%N at %d.%m.%Y'
103
+ declare -g RW_SENDER_E_MAIL_ADDRESS=''
104
+ declare -g RW_REPLIER_E_MAIL_ADDRESS="$RW_SENDER_E_MAIL_ADDRESS"
105
+ declare -g RW_VERBOSE=false
106
+ declare -g RW_NAME=NODE_NAME
107
107
  ## endregion
108
108
  ## region load options if present
109
109
  if [ -f /etc/reachableWatcher ]; then
@@ -113,42 +113,42 @@ fi
113
113
  ## endregion
114
114
  # endregion
115
115
  # region functions
116
- alias reachableWatcher.is_status_valid=reachableWatcher_is_status_valid
117
- reachableWatcher_is_status_valid() {
116
+ alias rw.is_status_valid=rw_is_status_valid
117
+ rw_is_status_valid() {
118
118
  local -r __documentation__='
119
119
  Checks if given and expected status codes results in valid state.
120
120
 
121
- >>> reachableWatcher.is_status_valid 200 200; echo $?
121
+ >>> rw.is_status_valid 200 200; echo $?
122
122
  0
123
123
 
124
- >>> reachableWatcher.is_status_valid 200 "000"; echo $?
124
+ >>> rw.is_status_valid 200 "000"; echo $?
125
125
  0
126
126
 
127
- >>> reachableWatcher.is_status_valid 200 0; echo $?
127
+ >>> rw.is_status_valid 200 0; echo $?
128
128
  0
129
129
 
130
- >>> reachableWatcher.is_status_valid "000" 200; echo $?
130
+ >>> rw.is_status_valid "000" 200; echo $?
131
131
  0
132
132
 
133
- >>> reachableWatcher.is_status_valid "000" 206; echo $?
133
+ >>> rw.is_status_valid "000" 206; echo $?
134
134
  0
135
135
 
136
- >>> reachableWatcher.is_status_valid 206 "000"; echo $?
136
+ >>> rw.is_status_valid 206 "000"; echo $?
137
137
  0
138
138
 
139
- >>> reachableWatcher.is_status_valid 206 200; echo $?
139
+ >>> rw.is_status_valid 206 200; echo $?
140
140
  0
141
141
 
142
- >>> reachableWatcher.is_status_valid 200 206; echo $?
142
+ >>> rw.is_status_valid 200 206; echo $?
143
143
  0
144
144
 
145
- >>> reachableWatcher.is_status_valid 201 206; echo $?
145
+ >>> rw.is_status_valid 201 206; echo $?
146
146
  1
147
147
 
148
- >>> reachableWatcher.is_status_valid 206 201; echo $?
148
+ >>> rw.is_status_valid 206 201; echo $?
149
149
  1
150
150
 
151
- >>> reachableWatcher.is_status_valid 201 506; echo $?
151
+ >>> rw.is_status_valid 201 506; echo $?
152
152
  1
153
153
  '
154
154
  # NOTE: Given state "000" resolves to "0" as interpreted integer.
@@ -170,18 +170,18 @@ reachableWatcher_is_status_valid() {
170
170
  return 1
171
171
  }
172
172
  ## region controller
173
- alias reachableWatcher.main=reachableWatcher_main
174
- reachableWatcher_main() {
173
+ alias rw.main=rw_main
174
+ rw_main() {
175
175
  local -r __documentation__='
176
176
  Main entry point.
177
177
  '
178
- $reachableWatcher_verbose && \
178
+ $RW_VERBOSE && \
179
179
  bl.logging.set_level info
180
180
  while true; do
181
181
  local url_to_check
182
- for url_to_check in "${!reachableWatcher_urls_to_check[@]}"; do
182
+ for url_to_check in "${!RW_URLS_TO_CHECK[@]}"; do
183
183
  local -i expected_status_code="$(
184
- echo "${reachableWatcher_urls_to_check[$url_to_check]}" | \
184
+ echo "${RW_URLS_TO_CHECK[$url_to_check]}" | \
185
185
  grep '^[^ ]+' --only-matching --extended-regexp)"
186
186
  bl.logging.debug "Check url \"$url_to_check\" for status code $expected_status_code."
187
187
  local -i given_status_code="$(
@@ -195,25 +195,25 @@ reachableWatcher_main() {
195
195
  )"
196
196
  local normalized_url_to_check="$(
197
197
  echo "$url_to_check" | sed 's/[:/.]/_/g')"
198
- if reachableWatcher.is_status_valid \
198
+ if rw.is_status_valid \
199
199
  "$expected_status_code" \
200
200
  "$given_status_code"
201
201
  then
202
- local message="Requested URL \"$url_to_check\" returns valid status code $given_status_code on $(date +"$reachableWatcher_date_time_format")."
202
+ local message="Requested URL \"$url_to_check\" returns valid status code $given_status_code on $(date +"$RW_DATE_TIME_FORMAT")."
203
203
  bl.logging.debug "$message"
204
204
  if [ "$(bl.dictionary.get state "$normalized_url_to_check")" = invalid ]; then
205
205
  bl.logging.info "Status has changed to \"valid\" for \"$url_to_check\". Do notification."
206
206
  local e_main_address
207
207
  for e_mail_address in $(
208
- echo "${reachableWatcher_urls_to_check[$url_to_check]}" | \
208
+ echo "${RW_URLS_TO_CHECK[$url_to_check]}" | \
209
209
  grep ' .+$' --only-matching --extended-regexp)
210
210
  do
211
211
  msmtp -t <<EOF
212
- From: $reachableWatcher_sender_e_mail_address
212
+ From: $RW_SENDER_E_MAIL_ADDRESS
213
213
  To: $e_mail_address
214
- Reply-To: $reachableWatcher_replier_e_mail_address
214
+ Reply-To: $RW_REPLIER_E_MAIL_ADDRESS
215
215
  Date: $(date)
216
- Subject: $reachableWatcher_name registers: "$url_to_check" responses with valid status code $given_status_code.
216
+ Subject: $RW_NAME registers: "$url_to_check" responses with valid status code $given_status_code.
217
217
 
218
218
  $message
219
219
 
@@ -224,7 +224,7 @@ EOF
224
224
  bl.logging.debug "Status unchanged."
225
225
  fi
226
226
  else
227
- local message="Requested URL \"$url_to_check\" returns status code $given_status_code (instead of \"$expected_status_code\") on $(date +"$reachableWatcher_date_time_format")."
227
+ local message="Requested URL \"$url_to_check\" returns status code $given_status_code (instead of \"$expected_status_code\") on $(date +"$RW_DATE_TIME_FORMAT")."
228
228
  bl.logging.debug "$message"
229
229
  if \
230
230
  [ "$(bl.dictionary.get state "$normalized_url_to_check")" = valid ] ||
@@ -233,15 +233,15 @@ EOF
233
233
  bl.logging.info "Status has changed to \"invalid for \"$url_to_check\". Do notification."
234
234
  local e_main_address
235
235
  for e_mail_address in $(
236
- echo "${reachableWatcher_urls_to_check[$url_to_check]}" | \
236
+ echo "${RW_URLS_TO_CHECK[$url_to_check]}" | \
237
237
  grep ' .+$' --only-matching --extended-regexp)
238
238
  do
239
239
  msmtp -t <<EOF
240
- From: $reachableWatcher_sender_e_mail_address
240
+ From: $RW_SENDER_E_MAIL_ADDRESS
241
241
  To: $e_mail_address
242
- Reply-To: $reachableWatcher_replier_e_mail_address
242
+ Reply-To: $RW_REPLIER_E_MAIL_ADDRESS
243
243
  Date: $(date)
244
- Subject: $reachableWatcher_name registers: "$url_to_check" responses with invalid status code $given_status_code!
244
+ Subject: $RW_NAME registers: "$url_to_check" responses with invalid status code $given_status_code!
245
245
 
246
246
  $message
247
247
 
@@ -253,8 +253,8 @@ EOF
253
253
  fi
254
254
  fi
255
255
  done
256
- bl.logging.debug "Wait for $reachableWatcher_delay_between_two_consequtive_requests_in_seconds seconds until next check."
257
- sleep "$reachableWatcher_delay_between_two_consequtive_requests_in_seconds"
256
+ bl.logging.debug "Wait for $RW_DELAY_BETWEEN_TWO_CONSEQUTIVE_REQUESTS_IN_SECONDS seconds until next check."
257
+ sleep "$RW_DELAY_BETWEEN_TWO_CONSEQUTIVE_REQUESTS_IN_SECONDS"
258
258
  done
259
259
  }
260
260
  ## endregion
@@ -262,22 +262,22 @@ EOF
262
262
  if bl.tools.is_main; then
263
263
  bl.exception.activate
264
264
  bl.exception.try
265
- reachableWatcher.main "$@"
265
+ rw.main "$@"
266
266
  bl.exception.catch_single
267
267
  {
268
- [ -d "$reachableWatcher_bashlink_path" ] && \
269
- rm --recursive "$reachableWatcher_bashlink_path"
268
+ [ -d "$RW_BASHLINK_PATH" ] && \
269
+ rm --recursive "$RW_BASHLINK_PATH"
270
270
  # shellcheck disable=SC2154
271
- [ -d "$bl_module_remote_module_cache_path" ] && \
272
- rm --recursive "$bl_module_remote_module_cache_path"
271
+ [ -d "$BL_MODULE_REMOTE_MODULE_CACHE_PATH" ] && \
272
+ rm --recursive "$BL_MODULE_REMOTE_MODULE_CACHE_PATH"
273
273
  # shellcheck disable=SC2154
274
- bl.logging.error "$bl_exception_last_traceback"
274
+ bl.logging.error "$BL_EXCEPTION_LAST_TRACEBACK"
275
275
  }
276
- [ -d "$reachableWatcher_bashlink_path" ] && \
277
- rm --recursive "$reachableWatcher_bashlink_path"
276
+ [ -d "$RW_BASHLINK_PATH" ] && \
277
+ rm --recursive "$RW_BASHLINK_PATH"
278
278
  # shellcheck disable=SC2154
279
- [ -d "$bl_module_remote_module_cache_path" ] && \
280
- rm --recursive "$bl_module_remote_module_cache_path"
279
+ [ -d "$BL_MODULE_REMOTE_MODULE_CACHE_PATH" ] && \
280
+ rm --recursive "$BL_MODULE_REMOTE_MODULE_CACHE_PATH"
281
281
  fi
282
282
  # region vim modline
283
283
  # vim: set tabstop=4 shiftwidth=4 expandtab:
package/readme.md CHANGED
@@ -72,8 +72,3 @@ systemctl start reachable-watcher
72
72
  ```
73
73
 
74
74
  you can see the worker running in your system logs.
75
-
76
- <!-- region vim modline
77
- vim: set tabstop=4 shiftwidth=4 expandtab:
78
- vim: foldmethod=marker foldmarker=region,endregion:
79
- endregion -->