aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorintrigeri <intrigeri@boum.org>2005-08-09 20:55:58 +0000
committerintrigeri <intrigeri@boum.org>2005-08-09 20:55:58 +0000
commit540f7e0f7c34b7a366a80f68ee8ea4dd32c89ecc (patch)
tree0e51c5bc8f639a285d3c09115732bb21b78051ab
parent49dfbcb81f79772c2283a9637eee49616b0b5ac8 (diff)
downloadbackupninja-540f7e0f7c34b7a366a80f68ee8ea4dd32c89ecc.tar.gz
backupninja-540f7e0f7c34b7a366a80f68ee8ea4dd32c89ecc.tar.bz2
ninjahelper: better check_perms(), improved xedit.
-rw-r--r--changelog6
-rwxr-xr-xninjahelper30
2 files changed, 31 insertions, 5 deletions
diff --git a/changelog b/changelog
index 51ee159..f2e11b1 100644
--- a/changelog
+++ b/changelog
@@ -20,6 +20,12 @@ version XX -- ...
now checks if the specified vserver is running.
now checks if $PGSQLDUMP/$PGSQLDUMPALL are available where needed.
now checks if "postgres" user exists on the host/vserver.
+ changes to ninjahelper
+ check_perms() does not die anymore on group/world readable
+ helper scripts (now consistent with the "helper scripts
+ must not be group or world writable!" error msg).
+ xedit action now tries $EDITOR, then /etc/alternatives/editor,
+ then nano, vim and vi, and aborts if none of these exists.
version 0.7 -- July 26 2005
added ninjahelper: a dialog based wizard for creating backupninja configs.
diff --git a/ninjahelper b/ninjahelper
index aedeaf5..817b47b 100755
--- a/ninjahelper
+++ b/ninjahelper
@@ -6,11 +6,12 @@
function check_perms() {
local file=$1
local perms=`ls -ld $file`
- perms=${perms:4:6}
- if [[ "$perms" != "------" && "$perms" != "r--r--" ]]; then
+ group_w_perm=${perms:5:1}
+ world_w_perm=${perms:8:1}
+ if [ "$group_w_perm" == "w" -o "$world_w_perm" == "w" ]; then
echo $perms
- echo "helper scripts must not be group or world writable! Dying on file $file"
- exit
+ echo "helper scripts must not be group or world writable! Dying on file $file"
+ exit
fi
if [ `ls -ld $file | awk '{print $3}'` != "root" ]; then
echo "helper scripts must be owned by root! Dying on file $file"
@@ -87,6 +88,25 @@ do_run() {
read
}
+do_xedit() {
+ if [ -z "$EDITOR" -o ! -x "`which $EDITOR`" ]; then
+ if [ -h /etc/alternatives/editor -a -x "`readlink /etc/alternatives/editor`" ]; then
+ EDITOR="`readlink /etc/alternatives/editor`"
+ elif [ -x "`which nano`" ]; then
+ EDITOR="`which nano`"
+ elif [ -x "`which vim`" ]; then
+ EDITOR="`which vim`"
+ elif [ -x "`which vi`" ]; then
+ EDITOR="`which vi`"
+ else
+ echo "No suitable editor found."
+ echo "Please define $EDITOR or configure /etc/alternatives/editor."
+ exit
+ fi
+ fi
+ $EDITOR $1
+}
+
do_run_test() {
backupninja --test --run $1
echo "Hit return to continue..."
@@ -130,7 +150,7 @@ doaction() {
result="$REPLY"
case "$result" in
"view") dialog --textbox $action 0 0;;
- "xedit") $EDITOR $action;;
+ "xedit") do_xedit $action;;
"disable") do_disable $action; return;;
"enable") do_enable $action; return;;
"name") do_rename $action; return;;