Current Path: > > usr > share > perl5 > > vendor_perl > CPAN >
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
API | Directory | - | - | |
Exception | Directory | - | - | |
FTP | Directory | - | - | |
HTTP | Directory | - | - | |
Kwalify | Directory | - | - | |
LWP | Directory | - | - | |
Meta | Directory | - | - | |
Plugin | Directory | - | - | |
Admin.pm | File | 7780 bytes | June 03 2025 14:32:20. | |
Author.pm | File | 6842 bytes | June 03 2025 14:32:20. | |
Bundle.pm | File | 9826 bytes | June 03 2025 14:32:20. | |
CacheMgr.pm | File | 7664 bytes | June 03 2025 14:32:20. | |
Complete.pm | File | 6023 bytes | June 03 2025 14:32:20. | |
Debug.pm | File | 2102 bytes | June 03 2025 14:32:20. | |
DeferredCode.pm | File | 189 bytes | June 03 2025 14:32:20. | |
Distribution.pm | File | 163814 bytes | June 03 2025 14:32:20. | |
Distroprefs.pm | File | 11990 bytes | June 03 2025 14:32:20. | |
Distrostatus.pm | File | 972 bytes | June 03 2025 14:32:20. | |
FTP.pm | File | 42624 bytes | June 03 2025 14:32:20. | |
FirstTime.pm | File | 71980 bytes | June 03 2025 14:32:20. | |
HandleConfig.pm | File | 23301 bytes | June 03 2025 14:32:20. | |
Index.pm | File | 22216 bytes | June 03 2025 14:32:20. | |
InfoObj.pm | File | 6909 bytes | June 03 2025 14:32:20. | |
Kwalify.pm | File | 3428 bytes | June 03 2025 14:32:20. | |
Meta.pm | File | 30272 bytes | August 18 2016 16:10:32. | |
Mirrors.pm | File | 16695 bytes | June 03 2025 14:32:20. | |
Module.pm | File | 22390 bytes | June 03 2025 14:32:20. | |
Nox.pm | File | 953 bytes | June 03 2025 14:32:20. | |
Plugin.pm | File | 3215 bytes | June 03 2025 14:32:20. | |
Prompt.pm | File | 567 bytes | June 03 2025 14:32:20. | |
Queue.pm | File | 6942 bytes | June 03 2025 14:32:20. | |
Shell.pm | File | 73605 bytes | June 03 2025 14:32:20. | |
Tarzip.pm | File | 16715 bytes | June 03 2025 14:32:20. | |
URL.pm | File | 588 bytes | June 03 2025 14:32:20. | |
Version.pm | File | 4398 bytes | June 03 2025 14:32:20. |
=head1 NAME CPAN::Kwalify - Interface between CPAN.pm and Kwalify.pm =head1 SYNOPSIS use CPAN::Kwalify; validate($schema_name, $data, $file, $doc); =head1 DESCRIPTION =over =item _validate($schema_name, $data, $file, $doc) $schema_name is the name of a supported schema. Currently only C<distroprefs> is supported. $data is the data to be validated. $file is the absolute path to the file the data are coming from. $doc is the index of the document within $doc that is to be validated. The last two arguments are only there for better error reporting. Relies on being called from within CPAN.pm. Dies if something fails. Does not return anything useful. =item yaml($schema_name) Returns the YAML text of that schema. Dies if something fails. =back =head1 AUTHOR Andreas Koenig C<< <andk@cpan.org> >> =head1 LICENSE This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See L<http://www.perl.com/perl/misc/Artistic.html> =cut use strict; package CPAN::Kwalify; use vars qw($VERSION $VAR1); $VERSION = "5.50"; use File::Spec (); my %vcache = (); my $schema_loaded = {}; sub _validate { my($schema_name,$data,$abs,$y) = @_; my $yaml_module = CPAN->_yaml_module; if ( $CPAN::META->has_inst($yaml_module) && $CPAN::META->has_inst("Kwalify") ) { my $load = UNIVERSAL::can($yaml_module,"Load"); unless ($schema_loaded->{$schema_name}) { eval { my $schema_yaml = yaml($schema_name); $schema_loaded->{$schema_name} = $load->($schema_yaml); }; if ($@) { # we know that YAML.pm 0.62 cannot parse the schema, # so we try a fallback my $content = do { my $path = __FILE__; $path =~ s/\.pm$//; $path = File::Spec->catfile($path, "$schema_name.dd"); local *FH; open FH, $path or die "Could not open '$path': $!"; local $/; <FH>; }; $VAR1 = undef; eval $content; if (my $err = $@) { die "parsing of '$schema_name.dd' failed: $err"; } $schema_loaded->{$schema_name} = $VAR1; } } } if (my $schema = $schema_loaded->{$schema_name}) { my $mtime = (stat $abs)[9]; for my $k (keys %{$vcache{$abs}}) { delete $vcache{$abs}{$k} unless $k eq $mtime; } return if $vcache{$abs}{$mtime}{$y}++; eval { Kwalify::validate($schema, $data) }; if (my $err = $@) { my $info = {}; yaml($schema_name, info => $info); die "validation of distropref '$abs'[$y] against schema '$info->{path}' failed: $err"; } } } sub _clear_cache { %vcache = (); } sub yaml { my($schema_name, %opt) = @_; my $content = do { my $path = __FILE__; $path =~ s/\.pm$//; $path = File::Spec->catfile($path, "$schema_name.yml"); if ($opt{info}) { $opt{info}{path} = $path; } local *FH; open FH, $path or die "Could not open '$path': $!"; local $/; <FH>; }; return $content; } 1; # Local Variables: # mode: cperl # cperl-indent-level: 4 # End:
SILENT KILLER Tool