403Webshell
Server IP : 3.128.248.115  /  Your IP : 3.137.198.143
Web Server : Apache/2.4.41 (Ubuntu)
System : Linux ip-172-31-33-233 5.15.0-1037-aws #41~20.04.1-Ubuntu SMP Mon May 22 18:18:00 UTC 2023 x86_64
User : www-data ( 33)
PHP Version : 7.4.28
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 : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /sbin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /sbin/install-sgmlcatalog
#!/usr/bin/perl
## ----------------------------------------------------------------------
## install-sgmlcatalog : Debian SGML catalog management tool
## ----------------------------------------------------------------------
## Copyright (c) 1997 Christian Schwarz
## Copyright (c) 2001-2004 Ardo van Rangelrooij
##
## This is free software; see the GNU General Public Licence version 2
## or later for copying conditions.  There is NO warranty.
## ----------------------------------------------------------------------

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

## ----------------------------------------------------------------------
use Getopt::Long qw( &GetOptions );

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

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

## ----------------------------------------------------------------------
use vars qw( $package );
use vars qw( $quiet );

## ----------------------------------------------------------------------
Getopt::Long::Configure( 'no_ignore_case' );
if ( ! GetOptions(
		  'quiet' => \$quiet,
		  'remove=s' => \$package,
		  )
     )
{
    &usage();
    exit 1;
}

## ----------------------------------------------------------------------
if ( ! defined( $package ) )
{
    &usage();
    exit -1;
}

## ----------------------------------------------------------------------
&remove( $package );

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

## ----------------------------------------------------------------------
sub remove
{

    ## ------------------------------------------------------------------
    my $package = $_[0];

    ## ----------------------------------------------------------------------
    my $catalog = '/etc/sgml/transitional.cat';
    my $backup  = '/etc/sgml/transitional.cat.old';

    ## ------------------------------------------------------------------
    return if ( ! -f $catalog );

    ## ----------------------------------------------------------------------
    my $top_marker    = '-- START SGML CATALOG ENTRY FOR PACKAGE';
    my $bottom_marker = '-- END SGML CATALOG ENTRY FOR PACKAGE';
    my $eol_marker    = '--';

    ## ------------------------------------------------------------------
    my @data;

   ## -------------------------------------------------------------------
    open( CATALOG, '<', $catalog )
	or &error( "cannot open SGML catalog $catalog for reading: $!" );

   ## -------------------------------------------------------------------
    while ( <CATALOG> )
    {
	chop;
	if ( /$top_marker $package $eol_marker/o )
	{
	    if ( $data[ $#data ] =~ /^\s*/o )
	    {
		pop( @data );
	    }
	    while ( !/$bottom_marker $package $eol_marker/o )
	    {
		if ( not ($_ = <CATALOG>) )
		{
		    &error( "cannot find bottom marker for package $package:\n    $bottom_marker $package $eol_marker\nplease remove the entry for $package manually" );
		}
	    }
	}
	else
	{
	    push( @data, $_ );
	}
    }

    ## ------------------------------------------------------------------
    close( CATALOG )
	or &error( "cannot close SGML catalog $catalog: $!" );

    ## ------------------------------------------------------------------
    if ( -f $catalog )
    {
	if ( -f $backup )
	{
	    unlink( $backup )
		or &error( "cannot remove backup of catalog $backup: $!" );
	}
	rename( $catalog, $backup )
	    or &error( "cannot rename $catalog to $backup: $!" );
    }

    ## ------------------------------------------------------------------
    open( CATALOG, '>', $catalog )
	or &error( "cannot open SGML catalog $catalog for writing: $!" );

    ## ------------------------------------------------------------------
    for ( @data )
    {
	print CATALOG "$_\n";
    }

    ## ------------------------------------------------------------------
    close( CATALOG )
	or &error( "cannot close SGML catalog $catalog: $!" );

} ## remove

## ----------------------------------------------------------------------
sub usage
{

    ## ------------------------------------------------------------------
    print STDERR <<END;
Usage:
    $name --remove package
END

} ## usage

## ----------------------------------------------------------------------
sub error
{

    ## ------------------------------------------------------------------
    die "$name: error: $_[0]\n";

} ## error

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

Youez - 2016 - github.com/yon3zu
LinuXploit