Dre4m Shell
Server IP : 85.214.239.14  /  Your IP : 3.12.74.66
Web Server : Apache/2.4.61 (Debian)
System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.18
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /bin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /bin/update-perl-sax-parsers
#!/usr/bin/perl
## ----------------------------------------------------------------------
## Debian update-perl-sax-parsers version 0.3
## ----------------------------------------------------------------------
## Copyright (C) 2001-2003 Ardo van Rangelrooij
## Copyright (C) 2007      Niko Tyni
##
## This is free software; see the GNU General Public Licence version 2
## or later for copying conditions.  There is NO warranty.
## ----------------------------------------------------------------------

## ----------------------------------------------------------------------
use strict;

## ----------------------------------------------------------------------
use File::Spec;
use Getopt::Long;
use XML::SAX;
use XML::SAX::Debian;
use File::Temp qw(tempfile);

## ----------------------------------------------------------------------
$0  =~ m|[^/]+$|;

## ----------------------------------------------------------------------
my $name = $&;

## ----------------------------------------------------------------------
my $add       = '';
my @directory = ();
my $file      = '';
my $help      = '';
my $quiet     = '';
my $remove    = '';
my $test      = '';
my $update    = '';
my $version   = '';
my $ucf;
my $priority;

## ----------------------------------------------------------------------
if ( ! GetOptions(
		  'add=s'       => \$add,
		  'directory=s' => \@directory,
		  'file=s'      => \$file,
		  'help'        => \$help,
		  'quiet'       => \$quiet,
		  'remove=s'    => \$remove,
		  'test'        => \$test,
		  'update'      => \$update,
		  'version'     => \$version,
		  'priority=i'  => \$priority,
		  'ucf=i'       => \$ucf,
		  )
     )
{
    &usage;
    exit 1;
}


## ----------------------------------------------------------------------
if ( $version )
{
    &version;
    exit 0;
}

## ----------------------------------------------------------------------
if ( $help )
{
    &usage;
    exit 0;
}

## ----------------------------------------------------------------------
print STDERR "$name: test mode - Perl SAX parsers file will not be updated\n"
    if $test && ! $quiet;

## ----------------------------------------------------------------------
# default priority is 50 unless --directory was specified
# with --directory, default to 0 (no priority in the filenames)
$priority = (@directory ? 0 : 50) if not defined $priority;

## ----------------------------------------------------------------------
my $PARSER_DETAILS_DIR  = "/var/lib/libxml-sax-perl/ParserDetails.d";
push( @directory, $PARSER_DETAILS_DIR) if ! @directory;

## ----------------------------------------------------------------------
# use ucf by default if --file is not specified
$ucf  = ($file ? 0 : 1) if not defined $ucf;

## ----------------------------------------------------------------------
my $PARSER_DETAILS_FILE = "/etc/perl/XML/SAX/ParserDetails.ini";
$file = $PARSER_DETAILS_FILE if ! $file;

## ----------------------------------------------------------------------
unless (XML::SAX->can("_is_vendor_supplied")) {
    print STDERR "$name: Non-vendor version of XML::SAX is installed.\n";
    print STDERR "$name: Automatic registration of SAX parsers might not work.\n";
}

if ( $add )
{
    print "$name: Registering Perl SAX parser $add with priority $priority...\n"
        unless $quiet;
    
    XML::SAX::Debian->save_parsers_debian( $add, $directory[0], $priority );
}
elsif ( $remove )
{
    print "$name: Unregistering Perl SAX parser $remove with priority $priority...\n"
        unless $quiet;
    
    my $parser_file = $remove;
    $parser_file = "${priority}-$parser_file" if $priority != 0;
    $parser_file = File::Spec->catfile( $directory[0], $parser_file );
    unlink( $parser_file );
}
elsif ( $update )
{
    print "$name: Updating overall Perl SAX parser modules info file...\n"
        unless $quiet;

    my ($handle, $tmpfile);

    if ($ucf) {
        ($handle, $tmpfile) = tempfile();
        chmod 0644, $tmpfile or die("chmod $tmpfile: $!");
    } else {
        open( $handle, ">$file" )
	        || die "Cannot write to $file: $!";
    }
    foreach my $directory ( @directory)
    {
	opendir( PARSER_DETAILS_DIR, $directory )
	    || die "Cannot access $directory: $!";
	my @files = sort readdir ( PARSER_DETAILS_DIR );
	for my $parser_details ( @files )
	{
	    next if $parser_details =~ /^\.\.?$/; # skip . and ..
	    open( PARSER_DETAILS, "$directory/$parser_details" )
		|| die "Cannot read from $parser_details: $!";
	    while ( <PARSER_DETAILS> ) { print $handle $_; }
	    close( PARSER_DETAILS );
	}
	closedir( PARSER_DETAILS_DIR );
    }
    close( $handle );
    if ($ucf) {
        system("ucf", "--debconf-ok", "--sum-file",  "/var/lib/libxml-sax-perl/ParserDetails.ini.md5sum", $tmpfile, $file);
        unlink $tmpfile or die("unlink $tmpfile: $!");
    }
}

## ----------------------------------------------------------------------
exit 0;

## ----------------------------------------------------------------------
sub usage
{
    print STDERR <<END;
Usage:
    $name <options> --add <parser_module>
    $name <options> --remove <parser_module>
    $name <options> --update

Options:
    --directory     Perl SAX parser module info file directory to be used
                    as target for 'add'/'remove' or as sources for 'update'
                    (default = '/var/lib/libxml-sax-perl/ParserDetails.d')
    --priority      The priority of the parser to add. The parser with the
                    highest priority is the default parser.
    --file          Perl SAX parser module info file to be updated
                    (default = '/etc/perl/XML/SAX/ParserDetails.ini')
    --ucf X         Forcibly disable (X == 0) or enable (X != 0) the use
                    of ucf with '--update'.
    --help          display this help text (usage)
    --quiet         be quiet
    --test          do not modify any files, enable debugging mode
    --version       display version number
END
}

## ----------------------------------------------------------------------
sub version
{
    print "Debian $name version 0.4\n";
}

## ----------------------------------------------------------------------

Anon7 - 2022
AnonSec Team