From 0984f50d91ff61131127ae80171c75f37de0fe30 Mon Sep 17 00:00:00 2001 From: dakkar Date: Thu, 3 Jan 2008 20:37:00 +0000 Subject: refactoring: cleaner git-svn-id: svn://luxion/repos/WebCoso/trunk@329 fcb26f47-9200-0410-b104-b98ab5b095f3 --- lib/WebCoso/Cleaner.pm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 lib/WebCoso/Cleaner.pm (limited to 'lib/WebCoso/Cleaner.pm') diff --git a/lib/WebCoso/Cleaner.pm b/lib/WebCoso/Cleaner.pm new file mode 100644 index 0000000..e9f9dcf --- /dev/null +++ b/lib/WebCoso/Cleaner.pm @@ -0,0 +1,22 @@ +package WebCoso::Cleaner; +use strict; +use warnings; +use File::Next; +use Path::Class; +use WebCoso::Common; + +sub clean { + my %to_keep; + @to_keep{WebCoso::Common::keepEarliest(WebCoso::Common::fromTo($WebCoso::Common::SRCPATH,{%WebCoso::Common::docfiles,dirs=>sub{!m{^(_webcoso|\.svn)$}}}))}=(); + @to_keep{WebCoso::Common::fromTo($WebCoso::Common::SRCPATH,{files=>sub{!m{^document\.}},dirs=>sub{!m{^(_webcoso|\.svn)$}}})}=(); + + my $iter=File::Next::files({descend_filter=>sub{!m{^\.svn$}}},$WebCoso::Common::SRCPATH,$WebCoso::Common::DSTPATH); + while (defined (my $file=$iter->())) { + next if exists $to_keep{$file}; + unlink $file; + } + dir($WebCoso::Common::DSTPATH)->rmtree; + dir($WebCoso::Common::SRCPATH,'_webcoso')->rmtree; +} + +1; -- cgit v1.2.3