K2LL33D SHELL

 Apache/2.4.7 (Ubuntu)
 Linux sman1baleendah 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64
 uid=33(www-data) gid=33(www-data) groups=33(www-data)
 safemode : OFF
 MySQL: ON | Perl: ON | cURL: OFF | WGet: ON
  >  / usr / sbin /
server ip : 172.67.156.115

your ip : 172.70.80.203

H O M E


Filename/usr/sbin/install-sgmlcatalog
Size4.44 kb
Permissionrwxr-xr-x
Ownerroot : root
Create time27-Apr-2025 09:55
Last modified05-Dec-2012 22:11
Last accessed05-Jul-2025 16:06
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
#!/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

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