aboutsummaryrefslogtreecommitdiff
path: root/lib/WebCoso
diff options
context:
space:
mode:
authordakkar <dakkar@luxion>2008-01-03 20:37:00 +0000
committerdakkar <dakkar@luxion>2008-01-03 20:37:00 +0000
commit0984f50d91ff61131127ae80171c75f37de0fe30 (patch)
treebb4443fd2063f6f03435bece5bbddd7493b0fd05 /lib/WebCoso
parentrefactoring: ReST (diff)
downloadWebCoso-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.pm22
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;