AnonSec Shell
Server IP : 52.91.253.208  /  Your IP : 3.145.175.253   [ Reverse IP ]
Web Server : Apache
System : Linux ip-172-26-9-9 4.19.0-25-cloud-amd64 #1 SMP Debian 4.19.289-1 (2023-07-24) x86_64
User : daemon ( 1)
PHP Version : 7.3.18
Disable Function : NONE
Domains : 3 Domains
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /usr/sbin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /usr/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

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

Anon7 - 2022
AnonSec Team