#!/bin/bash # Load debconf stuff . /usr/share/debconf/confmodule # Load nase funkcije . /usr/share/carnet-upgrade/data.sh . /usr/share/carnet-upgrade/messages.sh . /usr/share/carnet-upgrade/functions.sh # provjeri da li su paketi iz prvog polja instalirani i to strpaj u debconf cs_preupgrade () { local services i for i in $(echo "$services_to_check" | sed 's/ */ /g'| awk -F' ' '{print $1}') do if pkg $i; then if ! echo $services | grep -q $i; then services="$services $i" fi fi done if [ -n "$services" ]; then db_set carnet-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 case "$queuename" in upgrade) msg_header="$msg_finished_upgrade" ;; *) msg_header="$msg_finished" ;; esac db_get carnet-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" else notice "$msg_header" fi } # checkiraj da li je sto zapisano u debconf cs_check () { db_get carnet-upgrade/check-services || true debconf="$RET" if [ -n "$debconf" ]; then exit 0 else exit 1 fi } # prikazi sto je zapisano u debconf cs_show () { db_get carnet-upgrade/check-services || true echo "$RET" } case "$1" in preupgrade) cs_preupgrade ;; postupgrade) cs_postupgrade ;; check) cs_check ;; show) cs_show ;; *) echo "Usage: $0 (preupgrade|postupgrade|check|show)" exit 1 ;; esac exit 0