f3145886d9cd0c6eb76b694e7540042f3f61b2f5
[carnet-upgrade.git] / usr / share / carnet-upgrade / scripts / check_services
1 #!/bin/sh
2 # last update: 2004-12-20
3 # last update: 2005-01-07 razlicita msg_finished poruka, ovisno o $queuename
4 # Zoran 'jelly' Dzelajlija <jelly@srce.hr>
5 # Ivan 'ico' Rako <irako@srce.hr>
6
7 # Load debconf stuff
8 . /usr/share/debconf/confmodule
9
10 # Load nase funkcije
11 . /usr/share/carnet-upgrade/functions.sh
12 . /usr/share/carnet-upgrade/messages.sh
13 . /usr/share/carnet-upgrade/data.sh
14
15 # provjeri da li su paketi iz prvog polja instalirani i to strpaj u debconf
16 cs_preupgrade () {
17   local services i
18
19   for i in $(echo "$services_to_check" | sed 's/                */      /g'| awk -F'    ' '{print $1}')
20   do
21     if pkg $i; then
22       if ! echo $services | grep -q $i; then
23         services="$services $i"
24       fi
25     fi
26   done
27
28   if [ -n "$services" ]; then
29     db_set cn-upgrade/check-services "$services"
30     db_go || true
31   fi
32 }
33
34 # uzmi iz debconfa instalirane servise, i provjeri rade li
35 cs_postupgrade () {
36   local services i failed_services msg_header
37
38   case "$queuename" in
39     sarge) msg_header="$msg_finished_sarge"
40       ;;
41     *)
42       msg_header="$msg_finished"
43       ;;
44   esac
45
46   db_get cn-upgrade/check-services || true
47   services="$RET"
48
49   for i in $(echo "$services"); do
50     user=$(echo "$services_to_check" | grep ^${i} | sed 's/             */      /g'| awk -F'    ' '{print $2}')
51     psname=$(echo "$services_to_check" | grep ^${i} | sed 's/           */      /g'| awk -F'    ' '{print $3}')
52     nicename=$(echo "$services_to_check" | grep ^${i} | sed 's/         */      /g'| awk -F'    ' '{print $4}')
53     if ! pgrep -u $user -f "$psname" > /dev/null; then
54       if [ -z "$failed_services" ]; then
55         failed_services="$nicename"
56       else
57         failed_services="$failed_services, $nicename"
58       fi
59     fi
60   done
61
62   if [ -n "$failed_services" ]; then
63     notice "$msg_header$msg_failed_services$failed_services"
64   else
65     notice "$msg_header"
66   fi
67 }
68
69 # checkiraj da li je sto zapisano u debconf
70 cs_check () {
71   db_get cn-upgrade/check-services || true
72   debconf="$RET"
73
74   if [ -n "$debconf" ]; then
75     exit 0
76   else
77     exit 1
78   fi
79 }
80
81 case "$1" in
82 preupgrade)     cs_preupgrade
83         ;;
84 postupgrade)    cs_postupgrade
85         ;;
86 check)  cs_check
87         ;;
88 *)      echo "Usage: $0 (preupgrade|postupgrade|postupgrade-sarge|check)"
89         exit 1 
90         ;;
91 esac
92 exit 0
93