From: Zoran Dzelajlija Date: Sun, 20 Mar 2005 20:22:37 +0000 (+0000) Subject: r4: Funkcije za slanje maila, cp_echo() i cp_mail(). X-Git-Tag: debian/3.0.0~101 X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=commitdiff_plain;h=38de75c0ef647a2ecbe153fda14a3caae345497b;p=carnet-upgrade.git r4: Funkcije za slanje maila, cp_echo() i cp_mail(). --- diff --git a/README.CARNet b/README.CARNet index fd70a75..6c82673 100644 --- a/README.CARNet +++ b/README.CARNet @@ -40,11 +40,27 @@ cp_check_and_sed [ ...] postoji, izvrsi sed program nad tim datotekama. Najcesce se koristi za zamjenu stare vrijednosti postavke novom. +cp_echo [-mailonly|-m] + +cp_mail [-q] + + U kombinaciji, ove funkcije sluze za slanje poruka na stdout _i_ na + mail rootu. Koristiti za informacije koje svakako treba dostaviti + sistemcu (passwordi, nekompatibilne izmjene u konfiguraciji + kriticnih servisa), cak i ako ne cita dokumentaciju niti prati + poruke kod upgradea. :-> + + cp_echo se koristi umjesto echo. Uz -m salje poruku samo na mail. + cp_mail se poziva na kraju (postinsta), kad posalje mail. Bez + -q opcije cp_mail ce ispisati obavijest o slanju tog maila. + + Ove dvije funkcije koriste globalnu varijablu CP_NOTICE u koju se + spremaju poruke za mail. Funkcije cije ime pocinje sa cp_get_ pohranjuju rezultat u varijabli $RET, a one s prefiksom cp_check_ kao rezultat vracaju exit status. U pozivnoj -skripti se mogu definirati sljedece varijable koje utjecu na rad pomocnih -funkcija: +skripti se mogu definirati sljedece varijable koje utjecu na rad svih +pomocnih funkcija: $CP_SCRIPT_DEBUG diff --git a/functions.sh b/functions.sh index 805a066..06e42be 100644 --- a/functions.sh +++ b/functions.sh @@ -132,3 +132,50 @@ cp_check_and_sed() { done return $ret } + +# by jelly, Sun, 20 Mar 2005 20:12:19 +0100 +cp_echo () { + [ "$CP_SCRIPT_DEBUG" ] && set -vx + if [ "x$1" = "x-mailonly" -o "x$1" = "x-m" ]; then + shift + else + echo "$*" + fi + CP_NOTICE="$CP_NOTICE$1" + if [ `echo -n "$*" | wc -l` -eq 0 ]; then + CP_NOTICE="$CP_NOTICE +" + fi +} + +# by jelly, Sun, 20 Mar 2005 20:12:19 +0100 +cp_mail () { + [ "$CP_SCRIPT_DEBUG" ] && set -vx + local pkg version quiet + if [ "x$1" = "x-q" ]; then + quiet=1 + shift + fi + [ -n "$1" ] && pkg="$1" # barf if no package + [ -n "$2" ] && version=" $2" || true + if [ "$(echo $CP_NOTICE|wc -w)" -gt 0 ]; then + [ -n "$quiet" ] || echo "Mailing upgrade output to root." + CP_NOTICE="From: $pkg postinst script +To: root +Subject: $pkg$version package install log +Date: $(/bin/date +'%a, %d %b %Y %H:%M:%S %z') + +Hello! + +The $pkg package has been successfully installed on your computer. +For your convenience, a partial output of the last $pkg installation +is included below. + +---------- +$CP_NOTICE +----------" + + echo "$CP_NOTICE" | /usr/sbin/sendmail -t & + sleep 1 + fi +}