Make mail-{host,service}-notification.sh as POSIX-compliant as possible. 6780/head
authorMartijn van Duren <m.vanduren@itisit.nl>
Fri, 16 Nov 2018 13:23:56 +0000 (14:23 +0100)
committerMartijn van Duren <m.vanduren@itisit.nl>
Fri, 16 Nov 2018 13:23:56 +0000 (14:23 +0100)
etc/icinga2/scripts/mail-host-notification.sh
etc/icinga2/scripts/mail-service-notification.sh

index 781fee3553a7031ac560dac367365727c5760805..958e2d639d6de2f43b6ccfb9f91853aa4a6f813b 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env bash
+#!/bin/sh
 #
 # Copyright (C) 2012-2018 Icinga Development Team (https://icinga.com/)
 # Except of function urlencode which is Copyright (C) by Brian White (brian@aljex.com) used under MIT license 
@@ -51,11 +51,14 @@ Error() {
 }
 
 urlencode() {
-  local LANG=C i c e=''
-  for ((i=0;i<${#1};i++)); do
-    c=${1:$i:1}
-    [[ "$c" =~ [a-zA-Z0-9\.\~\_\-] ]] || printf -v c '%%%02X' "'$c"
-    e+="$c"
+  local LANG=C i=0 c e s="$1"
+
+  while [ $i -lt ${#1} ]; do
+    [ "$i" -eq 0 ] || s="${s#?}"
+    c=${s%"${s#?}"}
+    [ -z "${c#[[:alnum:].~_-]}" ] || c=$(printf '%%%02X' "'$c")
+    e="${e}${c}"
+    i=$((i + 1))
   done
   echo "$e"
 }
index d4a1944dc6d1854fc32ecc81cdc678d3966cfb7a..55edf4876d851e55fdc16ea2e7a16bed7afb6354 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env bash
+#!/bin/sh
 #
 # Copyright (C) 2012-2018 Icinga Development Team (https://icinga.com/)
 # Except of function urlencode which is Copyright (C) by Brian White (brian@aljex.com) used under MIT license
@@ -53,11 +53,14 @@ Error() {
 }
 
 urlencode() {
-  local LANG=C i c e=''
-  for ((i=0;i<${#1};i++)); do
-    c=${1:$i:1}
-    [[ "$c" =~ [a-zA-Z0-9\.\~\_\-] ]] || printf -v c '%%%02X' "'$c"
-    e+="$c"
+  local LANG=C i=0 c e s="$1"
+
+  while [ $i -lt ${#1} ]; do
+    [ "$i" -eq 0 ] || s="${s#?}"
+    c=${s%"${s#?}"}
+    [ -z "${c#[[:alnum:].~_-]}" ] || c=$(printf '%%%02X' "'$c")
+    e="${e}${c}"
+    i=$((i + 1))
   done
   echo "$e"
 }