--- smeserver-subversion-1.4/root/etc/e-smith/events/actions/repository-delete.ImproveRepositoryDeleteSanityCheck 2006-08-26 23:59:54.000000000 +0200 +++ smeserver-subversion-1.4/root/etc/e-smith/events/actions/repository-delete 2008-02-25 21:15:47.000000000 +0100 @@ -24,18 +24,30 @@ #---------------------------------------------------------------------- #------------------------------------------------------------ -# Delete the Unix account and files for the repository. +# Delete the files for the repository. #------------------------------------------------------------ -event=$1 -repository=$2 -if [ -z "$repository" ] -then - echo repositoryName argument missing - exit 1 -fi - -/bin/rm -rf /home/e-smith/files/repositories/$repository -#/usr/sbin/userdel "$repository" -#/usr/sbin/groupdel "$repository" -/sbin/e-smith/db accounts delete $repository +use strict; +use Errno; +use File::Path; + +use esmith::AccountsDB; +my $adb = esmith::AccountsDB->open_ro(); + +my $event = $ARGV [0]; +my $repository = $ARGV [1]; + +$a = $adb->get($repository) || undef; +unless ( defined $a && $a->prop('type') eq "repository-deleted" ) +{ + warn "$repository is not a repository\n"; + exit (0); +} + +my $dir = "/home/e-smith/files/repositories/$repository"; + +exit 0 unless ( -d $dir ); + +rmtree( $dir ) || die "Couldn't remove tree $dir\n"; + +exit (0);