From: Zoran Dzelajlija <Zoran.Dzelajlija@CARNet.hr>
Date: Fri, 28 Oct 2005 10:08:02 +0000 (+0000)
Subject: r85: Dodane -d i -n opcije za cp_backup_conffile.
X-Git-Tag: debian/3.0.0~25
X-Git-Url: http://ftp.carnet.hr/pub/carnet-debian/scm?a=commitdiff_plain;h=6747fddc8ece9e748a8624cb55828465bdb3ba1c;p=carnet-upgrade.git

r85: Dodane -d i -n opcije za cp_backup_conffile.
---

diff --git a/carnet-tools.7 b/carnet-tools.7
index 4caa4a9..ac445ec 100644
--- a/carnet-tools.7
+++ b/carnet-tools.7
@@ -62,7 +62,7 @@ naveden kao argument, vraca IP adresu od loopback sucelja (lo).
 Funkcija vraca IP netmask mreznog sucelja. U slucaju da nije
 naveden kao argument, vraca IP netmask od loopback sucelja (lo).
 .TP
-\fBcp_get_ifdefault\fR [\fBdev\fR|\fBaddr\fR]
+\fBcp_get_ifdefault\fR <\fBdev\fR|\fBaddr\fR>
 Funkcija vraca naziv uredjaj ili adresu podrazumne rute (default
 route).
 .TP
@@ -72,14 +72,16 @@ da nije naveden \fIinterface\fR argument, vraca CIDR sucelja preko
 kojeg ide default route, a ako isti nije definiran, vraca CIDR
 loopback sucelja (lo).
 .TP
-\fBcp_backup_conffile\fR \fIfile\fR [\fIbackup_file\fR]
+\fBcp_backup_conffile\fR [\fB-n\fR] [\fB-d\fR \fIbackup_dir\fR] \fIfile\fR [\fIbackup_file\fR]
 .TP
-\fBcp_check_and_backup\fR \fIfile\fR [\fIbackup_file\fR]
+\fBcp_check_and_backup\fR [\fB-n\fR] [\fB-d\fR \fIbackup_dir\fR] \fIfile\fR [\fIbackup_file\fR]
 Funkcije backupiraju datoteku, kopija originala se sprema
 u /var/backups/ direktorij sa dodanim .bak nastavkom.  Po potrebi se vrsi
 rotacija prethodno spremljenih kopija ako postoje neke razlike.  Opcionalni
 argument \fIbackup_file\fR zamjenuje ime backup datoteke u /var/backups 
-nekim drugim.  Na primjer:
+nekim drugim.  Opcijom \fB-d\fR se moze podesiti alternativno odrediste, bilo 
+apsolutnom putanjom do zeljenog direktorija ili relativnom unutar /var/backups.
+Opcija \fB-n\fR sprecava dodavanje .bak nastavka.  Na primjer:
 .nf
 cp_backup_conffile config.php
 .fi
@@ -88,6 +90,9 @@ cp_backup_conffile config.php
 cp_backup_conffile apache.conf squirrelmail-apache.conf
 .fi
   - backup ide u /var/backups/squirrelmail-apache.conf.bak
+cp_backup_conffile -n -d aai preinstall.ldif
+.fi
+  - backup ide u /var/backups/aai/preinstall.ldif
 cp_backup_conffile uspjesno zavrsi ako nije bilo potrebno izvrsiti backup, 
 dok cp_check_and_backup u tom slucaju vraca status 3.
 .TP
@@ -98,7 +103,7 @@ koristi za zamjenu stare vrijednosti postavke novom.
 .TP
 \fBcp_echo\fR [\fB-mailonly\fR|\fB-m\fR] \fIstring\fR
 .TP
-\fBcp_mail\fR [\fB-q\fR] \fIpackage\fR \fIversion\fR
+\fBcp_mail\fR [\fB-q\fR] \fIpackage\fR [\fIversion\fR]
 U kombinaciji, ove funkcije sluze za slanje poruka na stdout \fUi\fR na
 mail rootu.  Koristiti za informacije koje svakako treba dostaviti
 sistemcu (passwordi, nekompatibilne izmjene u konfiguraciji
diff --git a/changelog.CARNet b/changelog.CARNet
index 1b6eb63..da12918 100644
--- a/changelog.CARNet
+++ b/changelog.CARNet
@@ -1,3 +1,9 @@
+carnet-tools-cn (2.5) sarge; urgency=low
+
+  * Dodane -n i -d <backup_dir> opcije za cp_backup_conffile.
+
+ -- Zoran Dzelajlija <jelly@srce.hr>  Fri, 28 Oct 2005 11:54:24 +0200
+
 carnet-tools-cn (2.4.3) sarge; urgency=low
 
   * Inicijalizacija pomocne $CP_ECHO_RETURN varijable.
diff --git a/functions.sh b/functions.sh
index 4390978..0813756 100644
--- a/functions.sh
+++ b/functions.sh
@@ -159,12 +159,36 @@ cp_check_and_backup() {
 cp_backup_conffile() {
   [ "$CP_SCRIPT_DEBUG" ] && set -vx
 
-  local file_bak check did
+  local dir ext file_bak check did
   
-  if [ "x$1" = "x-r" ]; then
-    check=1
-    shift
-  fi
+  dir=/var/backups
+  ext=.bak
+  
+  while echo "x$1" |grep -q '^x-'; do
+    case "$1" in
+    -r)
+      shift
+      check=1
+      ;;
+    -d)
+      shift
+      # is argument to -d full path or relative?
+      if echo "$1" |grep -q '^/'; then
+        dir="$1"
+      else
+        dir="$dir/$1"
+      fi
+      shift
+      if [ ! -d "$dir" ]; then
+        echo "cp_backup_conffile: Invalid backup directory $dir" 1>&2
+        return 3
+      fi
+      ;;
+    -n)
+      shift
+      ext=
+    esac
+  done
   if [ -z "$1" ]; then
     return 1
   fi
@@ -173,9 +197,9 @@ cp_backup_conffile() {
     return 2
   fi
   if [ -z "$2" ]; then
-    file_bak="/var/backups/`basename $1`.bak"
+    file_bak="$dir/`basename $1`$ext"
   else
-    file_bak="/var/backups/`basename $2`.bak"
+    file_bak="$dir/`basename $2`$ext"
   fi
 
   if [ ! -f "$file_bak" ]; then