diff options
Diffstat (limited to 'lib')
-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; |