✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ server.blackpussy.asia ​🇻​♯➤ 5.14.0-611.20.1.el9_7.x86_64 #1 SMP 🇾​♯➤ 2026

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 163.245.207.76 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.243
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗞 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ mail,mb_send_mail
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /usr/share/perl5/vendor_perl/CPAN//Kwalify.pm
=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:


Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
17 Jan 2026 3.22 PM
root / root
0755
API
--
17 Jan 2026 3.14 PM
root / root
0755
Exception
--
17 Jan 2026 3.14 PM
root / root
0755
FTP
--
17 Jan 2026 3.14 PM
root / root
0755
HTTP
--
17 Jan 2026 3.14 PM
root / root
0755
Kwalify
--
17 Jan 2026 3.14 PM
root / root
0755
LWP
--
17 Jan 2026 3.14 PM
root / root
0755
Meta
--
17 Jan 2026 3.14 PM
root / root
0755
Plugin
--
17 Jan 2026 3.14 PM
root / root
0755
Admin.pm
7.608 KB
13 May 2025 9.00 PM
root / root
0644
Author.pm
6.682 KB
13 May 2025 9.00 PM
root / root
0644
Bundle.pm
9.906 KB
13 May 2025 9.00 PM
root / root
0644
CacheMgr.pm
7.484 KB
13 May 2025 9.00 PM
root / root
0644
Complete.pm
5.882 KB
13 May 2025 9.00 PM
root / root
0644
Debug.pm
2.053 KB
13 May 2025 9.00 PM
root / root
0644
DeferredCode.pm
0.185 KB
13 May 2025 9.00 PM
root / root
0644
DistnameInfo.pm
4.986 KB
11 Mar 2011 11.36 PM
root / root
0644
Distribution.pm
178.757 KB
13 May 2025 9.00 PM
root / root
0644
Distroprefs.pm
11.709 KB
13 May 2025 9.00 PM
root / root
0644
Distrostatus.pm
0.949 KB
13 May 2025 9.00 PM
root / root
0644
FTP.pm
48.201 KB
13 May 2025 9.00 PM
root / root
0644
FirstTime.pm
73.422 KB
13 May 2025 9.00 PM
root / root
0644
HandleConfig.pm
23.616 KB
13 May 2025 9.00 PM
root / root
0644
Index.pm
21.715 KB
13 May 2025 9.00 PM
root / root
0644
InfoObj.pm
6.747 KB
13 May 2025 9.00 PM
root / root
0644
Kwalify.pm
3.348 KB
13 May 2025 9.00 PM
root / root
0644
Meta.pm
29.563 KB
18 Aug 2016 4.10 PM
root / root
0644
Mirrors.pm
17.822 KB
13 May 2025 9.00 PM
root / root
0644
Module.pm
21.865 KB
13 May 2025 9.00 PM
root / root
0644
Nox.pm
0.931 KB
13 May 2025 9.00 PM
root / root
0644
Plugin.pm
3.144 KB
13 May 2025 9.00 PM
root / root
0644
Prompt.pm
0.554 KB
13 May 2025 9.00 PM
root / root
0644
Queue.pm
6.957 KB
13 May 2025 9.00 PM
root / root
0644
Shell.pm
71.957 KB
13 May 2025 9.00 PM
root / root
0644
Tarzip.pm
16.25 KB
13 May 2025 9.00 PM
root / root
0644
URL.pm
0.574 KB
13 May 2025 9.00 PM
root / root
0644
Version.pm
4.295 KB
13 May 2025 9.00 PM
root / root
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF