X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_webkit;a=blobdiff_plain;f=Websites%2Fbugs.webkit.org%2Ft%2FSupport%2FFiles.pm;fp=Websites%2Fbugs.webkit.org%2Ft%2FSupport%2FFiles.pm;h=dc60687b616bf5d466c788c30c07f30fca49ab1b;hp=0000000000000000000000000000000000000000;hb=186b2535c234ccc42a8c27998f11be6f718f604f;hpb=1c567be6144228b511852e3cab689fc41b052875 diff --git a/Websites/bugs.webkit.org/t/Support/Files.pm b/Websites/bugs.webkit.org/t/Support/Files.pm new file mode 100644 index 0000000..dc60687 --- /dev/null +++ b/Websites/bugs.webkit.org/t/Support/Files.pm @@ -0,0 +1,83 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code are the Bugzilla Tests. +# +# The Initial Developer of the Original Code is Zach Lipton +# Portions created by Zach Lipton are +# Copyright (C) 2001 Zach Lipton. All +# Rights Reserved. +# +# Contributor(s): Zach Lipton +# Joel Peshkin + + +package Support::Files; + +use File::Find; + +# exclude_deps is a hash of arrays listing the files to be excluded +# if a module is not available +# +@additional_files = (); +%exclude_deps = ( + 'XML::Twig' => ['importxml.pl'], + 'Net::LDAP' => ['Bugzilla/Auth/Verify/LDAP.pm'], + 'Authen::Radius' => ['Bugzilla/Auth/Verify/RADIUS.pm'], + 'Email::Reply' => ['email_in.pl'], + 'Email::MIME::Attachment::Stripper' => ['email_in.pl'] +); + + +@files = glob('*'); +find(sub { push(@files, $File::Find::name) if $_ =~ /\.pm$/;}, 'Bugzilla'); + +sub have_pkg { + my ($pkg) = @_; + my ($msg, $vnum, $vstr); + no strict 'refs'; + eval { my $p; ($p = $pkg . ".pm") =~ s!::!/!g; require $p; }; + return !($@); +} + +@exclude_files = (); +foreach $dep (keys(%exclude_deps)) { + if (!have_pkg($dep)) { + push @exclude_files, @{$exclude_deps{$dep}}; + } +} + +sub isTestingFile { + my ($file) = @_; + my $exclude; + foreach $exclude (@exclude_files) { + if ($file eq $exclude) { return undef; } # get rid of excluded files. + } + + if ($file =~ /\.cgi$|\.pl$|\.pm$/) { + return 1; + } + my $additional; + foreach $additional (@additional_files) { + if ($file eq $additional) { return 1; } + } + return undef; +} + +foreach $currentfile (@files) { + if (isTestingFile($currentfile)) { + push(@testitems,$currentfile); + } +} + + +1;