projects
/
carnet-tools-cn.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
r61: cp_check_and_backup(), kao cp_backup_conffile ali vraca false (3)
[carnet-tools-cn.git]
/
functions.sh
diff --git
a/functions.sh
b/functions.sh
index
773e522
..
2094e0a
100644
(file)
--- a/
functions.sh
+++ b/
functions.sh
@@
-139,9
+139,17
@@
cp_get_netaddr() {
# by ico, Tue, 15 Mar 2005 14:04:21 +0100
cp_backup_conffile() {
# by ico, Tue, 15 Mar 2005 14:04:21 +0100
cp_backup_conffile() {
- [ "$CP_SCRIPT_DEBUG" ] && set -vx
- local file_bak
+ cp_check_and_backup "$@"
+}
+cp_check_and_backup() {
+ [ "$CP_SCRIPT_DEBUG" ] && set -vx
+ local file_bak check did
+
+ if [ "x$1" = "x-r" ]; then
+ check=1
+ shift
+ fi
if [ -z "$1" ]; then
return 1
fi
if [ -z "$1" ]; then
return 1
fi
@@
-149,17
+157,28
@@
cp_backup_conffile() {
echo "cp_backup_conffile: $1: No such file" 1>&2
return 1
fi
echo "cp_backup_conffile: $1: No such file" 1>&2
return 1
fi
+ if [ -z "$2" ]; then
+ file_bak="/var/backups/`basename $1`.bak"
+ else
+ file_bak="/var/backups/`basename $2`.bak"
+ fi
- file_bak="/var/backups/`basename $1`.bak"
-
- if [ ! -f $file_bak ]; then
- cp -pf "$1" $file_bak
+ if [ ! -f "$file_bak" ]; then
+ cp -pf "$1" "$file_bak"
+ did=1
else
else
- if ! cmp -s "$1" $file_bak; then
- /usr/bin/savelog -p -c 7 $file_bak > /dev/null 2> /dev/null
- cp -pf $1 $file_bak
+ if ! cmp -s "$1" "$file_bak"; then
+ /usr/bin/savelog -p -c 7 "$file_bak" > /dev/null 2> /dev/null
+ cp -pf "$1" "$file_bak"
+ did=1
fi
fi
fi
fi
+
+ if [ "$check" -a "$did" ]; then
+ return 0
+ else
+ return 3
+ fi
}
# by jelly, Tue, 15 Mar 2005 14:04:21 +0100
}
# by jelly, Tue, 15 Mar 2005 14:04:21 +0100