Updated service checks. Use unique debconf names.
[carnet-upgrade.git] / usr / share / carnet-upgrade / scripts / check_services
index 7677ffc..aa24d6f 100755 (executable)
@@ -26,11 +26,30 @@ cs_preupgrade () {
   done
 
   if [ -n "$services" ]; then
-    db_set cn-upgrade/check-services "$services"
+    db_set cn3-upgrade/check-services "$services"
     db_go || true
   fi
 }
 
+cs_pgrep () {
+    local failed_services
+
+    while read line; do
+        # get service param from stdin
+        user=$(echo "$line" | awk -F ' ' '{print $2}')
+        psname=$(echo "$line" | awk -F '       ' '{print $3}')
+        nicename=$(echo "$line" | awk -F '     ' '{print $4}')
+
+        # check if service is running
+        if ! pgrep -u $user -f "$psname" > /dev/null; then
+            failed_services="$failed_services, $nicename"
+
+        fi
+    done
+
+    echo ${failed_services#, }
+}
+
 # uzmi iz debconfa instalirane servise, i provjeri rade li
 cs_postupgrade () {
   local services i failed_services msg_header
@@ -43,21 +62,15 @@ cs_postupgrade () {
       ;;
   esac
 
-  db_get cn-upgrade/check-services || true
-  services="$RET"
-
-  for i in $(echo "$services"); do
-    user=$(echo "$services_to_check" | grep ^${i} | sed 's/            */      /g'| awk -F'    ' '{print $2}')
-    psname=$(echo "$services_to_check" | grep ^${i} | sed 's/          */      /g'| awk -F'    ' '{print $3}')
-    nicename=$(echo "$services_to_check" | grep ^${i} | sed 's/                */      /g'| awk -F'    ' '{print $4}')
-    if ! pgrep -u $user -f "$psname" > /dev/null; then
-      if [ -z "$failed_services" ]; then
-        failed_services="$nicename"
-      else
-        failed_services="$failed_services, $nicename"
-      fi
-    fi
-  done
+  db_get cn3-upgrade/check-services || true
+  services="${RET// /|}"
+
+  failed_services=$(
+    echo "$services_to_check" \
+    | grep -E "^($services)" \
+    | sed 's/          */      /g' \
+    | cs_pgrep
+  )
 
   if [ -n "$failed_services" ]; then
     notice "$msg_header$msg_failed_services$failed_services"
@@ -68,7 +81,7 @@ cs_postupgrade () {
 
 # checkiraj da li je sto zapisano u debconf
 cs_check () {
-  db_get cn-upgrade/check-services || true
+  db_get cn3-upgrade/check-services || true
   debconf="$RET"
 
   if [ -n "$debconf" ]; then