Bug#385269: backup-manager: updated patch for #385269

2006-09-01 Thread Alexis Sukrieh

Hi,

Thomas Parmelan wrote:

Hi,

[...]

The following patch fixes this for me but is probably specific to bash.

[...]


# First list all the files to process
# and ask bakup-manager-purge what to remove
list=$(mktemp /tmp/bm-list.XX)
find -H $directory -type f -print \
| /usr/bin/backup-manager-purge --ttl=$BM_ARCHIVE_TTL  $list



For your information, that patch has just been applied upstream (in the 
SVN repository).


It will be available in the next development version.

Thanks for your report and useful comments.

Cheers,

Alexis.


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#385269: backup-manager: updated patch for #385269

2006-08-31 Thread Thomas Parmelan
Hi,

Forget the explanation i gave in my previous mail, it was wrong. The
real problem lies in shell variables and function recursivity: in
clean_directory() $list is not declared as local, so when you have a
subdirectory and call clean_directory() on it, $list is modified.

The following patch fixes this for me but is probably specific to bash.

--- files.sh.orig^I2006-08-04 14:04:19.0 +0200
+++ files.sh.local^I2006-08-31 09:34:41.0 +0200
@@ -326,7 +326,7 @@
 fi
 
 # First list all the files to process
-list=$(mktemp /tmp/bm-list.XX)
+local list=$(mktemp /tmp/bm-list.XX)
 for file in $directory/*
 do
 if [ ! -e $file ]; then


On the other hand, is there a good reason to implement clean_directory()
as recursive instead of just using find ? backup-manager-purge seems to
accept full paths so something like this might be better (untested):

clean_directory()
{
directory=$1
purge_date=$(date +%Y%m%d --date $BM_ARCHIVE_TTL days ago)

#__debug Purging archives older than $purge_date

if [ ! -d $directory ]; then
error Directory given is not found.
fi

# First list all the files to process
list=$(mktemp /tmp/bm-list.XX)
find -H $directory -type f -print  $list

# Then ask bakup-manager-purge what to remove
for archive in `/usr/bin/backup-manager-purge --ttl=$BM_ARCHIVE_TTL  $list`
do  
info Removing archive \\$archive\.
rm -f $archive
done
rm -f $list
}

Or even:

clean_directory()
{
directory=$1
purge_date=$(date +%Y%m%d --date $BM_ARCHIVE_TTL days ago)

#__debug Purging archives older than $purge_date

if [ ! -d $directory ]; then
error Directory given is not found.
fi

# First list all the files to process
# and ask bakup-manager-purge what to remove
list=$(mktemp /tmp/bm-list.XX)
find -H $directory -type f -print \
| /usr/bin/backup-manager-purge --ttl=$BM_ARCHIVE_TTL  $list

for archive in `cat $list`
do  
info Removing archive \\$archive\.
rm -f $archive
done
rm -f $list
}

Or even:

clean_directory()
{
directory=$1
purge_date=$(date +%Y%m%d --date $BM_ARCHIVE_TTL days ago)

#__debug Purging archives older than $purge_date

if [ ! -d $directory ]; then
error Directory given is not found.
fi

for archive in ` find -H $directory -type f -print \
| /usr/bin/backup-manager-purge --ttl=$BM_ARCHIVE_TTL \
| xargs rm -v -- `
do
info \$archive
done
}


Of course all this might be perfectly wrong, because I didn't have my coffee
yet ;)

-- 
Thomas Parmelan


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]