diff options
author | dakkar <dakkar@luxion> | 2008-01-03 20:37:00 +0000 |
---|---|---|
committer | dakkar <dakkar@luxion> | 2008-01-03 20:37:00 +0000 |
commit | 0984f50d91ff61131127ae80171c75f37de0fe30 (patch) | |
tree | bb4443fd2063f6f03435bece5bbddd7493b0fd05 /lib/WebCoso | |
parent | refactoring: ReST (diff) | |
download | WebCoso-0984f50d91ff61131127ae80171c75f37de0fe30.tar.gz WebCoso-0984f50d91ff61131127ae80171c75f37de0fe30.tar.bz2 WebCoso-0984f50d91ff61131127ae80171c75f37de0fe30.zip |
refactoring: cleaner
git-svn-id: svn://luxion/repos/WebCoso/trunk@329 fcb26f47-9200-0410-b104-b98ab5b095f3
Diffstat (limited to 'lib/WebCoso')
-rw-r--r-- | lib/WebCoso/Cleaner.pm | 22 |
1 files changed, 22 insertions, 0 deletions
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; |