r4: Funkcije za slanje maila, cp_echo() i cp_mail().
authorZoran Dzelajlija <Zoran.Dzelajlija@CARNet.hr>
Sun, 20 Mar 2005 20:22:37 +0000 (20:22 +0000)
committerZoran Dzelajlija <Zoran.Dzelajlija@CARNet.hr>
Sun, 20 Mar 2005 20:22:37 +0000 (20:22 +0000)
README.CARNet
functions.sh

index fd70a75..6c82673 100644 (file)
@@ -40,11 +40,27 @@ cp_check_and_sed <regexp> <sed> <file> [<file> ...]
        postoji, izvrsi sed program <sed> nad tim datotekama.  Najcesce se
        koristi za zamjenu stare vrijednosti postavke novom.
 
+cp_echo [-mailonly|-m] <string>
+
+cp_mail [-q] <package> <version>
+
+       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
 
index 805a066..06e42be 100644 (file)
@@ -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 <root>
+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
+}