From 518ef661e17b170431d19fcc4d2b4fa02095a156 Mon Sep 17 00:00:00 2001 From: erdgeist Date: Sun, 6 Jul 2008 22:24:56 +0000 Subject: Making paths absolute did not work correctly. Also move commands handling multiple jails to a for loop instead of a while loop --- ezjail-admin | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/ezjail-admin b/ezjail-admin index b960044..b5715c1 100755 --- a/ezjail-admin +++ b/ezjail-admin @@ -249,13 +249,9 @@ ezjail_queryftpserver () { # Make a path absolute, if it isn't already ezjail_makeabsolute ( ) { - if [ $# -eq 1 ]; then - path=`pwd -P` - else - path=$2 - ezjail_makeabsolute path - fi - eval [ \"\${$1%%[!/]*}\" -o "\${$1}" = "-" ] || eval export ${1}="${path}/\${$1}" + eval [ \"\${$1%%[!/]*}\" -o "\${$1}" = "-" ] && return + [ "${2%%[!/]*}" ] && path=${2} || path=`pwd -P`/${2} + eval export ${1}="${path}/\${$1}" } parse_geli_attach_args () { @@ -826,9 +822,9 @@ archive) # Fetch list of all ezjails [ "${ezjail_archivealljails}" -a -d "${ezjail_prefix}/etc/ezjail/" ] && cd "${ezjail_prefix}/etc/ezjail/" && set - `ls | xargs rcorder` - while [ $# -gt 0 ]; do + for ezjail in $@; do # Jail name mandatory - fetchjailinfo ${1%.norun} + fetchjailinfo ${ezjail%.norun} # Check for existence of jail in our records [ "${ezjail_config}" ] || exerr "Error: Nothing known about jail ${ezjail_name}." @@ -854,7 +850,7 @@ archive) # If archive location is not absolute, prepend archive directory ezjail_makeabsolute ezjail_archive ${ezjail_archivedir} - +echo ${ezjail_archive} # It's a tar archive, after all case ${ezjail_archive} in *.tar.gz|*.tgz|-) ;; @@ -880,8 +876,6 @@ archive) # When archiving a running jail, some errors might occur [ $? -eq 0 ] || echo "Warning: Archiving jail ${ezjail_name} was not completely successful. For a running jail this is not unusual. You might want to check ${ezjail_archive}." - # To the next jail on command line - shift 1 unset ezjail_archive ezjail_archive_opt ezjail_addfiles done ;; @@ -900,9 +894,8 @@ restore) # Default archive directory to . ezjail_archivedir=${ezjail_archivedir:-`pwd -P`} - while [ $# -gt 0 ]; do + for ezjail_fromarchive in $@; do unset ezjail_safename - ezjail_fromarchive=$1 # if archive location is absolute and doesn't exist, fail [ "${ezjail_fromarchive%%[!/]*}" -a ! -f "${ezjail_fromarchive}" ] && exerr "Error: File for archive ${ezjail_fromarchive} not found." @@ -955,7 +948,6 @@ restore) . "${ezjail_tmpfile}" rm -f "${ezjail_tmpfile}" - shift 1 done ;; ######################## ezjail-admin CONFIG ######################## -- cgit v1.2.3