#! /usr/bin/perl
#
# 1999 (c) Piotr Roszatycki ) {
chop;
ls($_);
}
close LIST;
}
}
sub copyout
{
my($archive,$filename,$destfile)=@_;
my $qarchive = quote($archive);
my $qfilename = quote($filename);
my $qdestfile = quote($destfile);
if($filename eq "INFO") {
system("dpkg -s $qarchive > $qdestfile");
} elsif($filename eq "DPKG-REPACK") {
if ( open(FILEOUT,">$destfile") ) {
print FILEOUT $pressrepack;
close FILEOUT;
system("chmod a+x $qdestfile");
}
} elsif($filename =~ /^DEBIAN/) {
$qfilename=~s!^DEBIAN/!!;
system("cat /var/lib/dpkg/info/$qarchive.$qfilename > $qdestfile");
} elsif($filename eq "DPKG-REMOVE" || $filename eq "APT-REMOVE") {
if ( open(FILEOUT,">$destfile") ) {
print FILEOUT $pressremove;
close FILEOUT;
system("chmod a+x $qdestfile");
}
} elsif($filename eq "DPKG-PURGE" || $filename eq "APT-PURGE") {
if ( open(FILEOUT,">$destfile") ) {
print FILEOUT $presspurge;
close FILEOUT;
system("chmod a+x $qdestfile");
}
} elsif($filename eq "DPKG-RECONFIGURE") {
if ( open(FILEOUT,">$destfile") ) {
print FILEOUT $pressreconfigure;
close FILEOUT;
system("chmod a+x $qdestfile");
}
} elsif($filename eq "APT-REINSTALL") {
if ( open(FILEOUT,">$destfile") ) {
print FILEOUT $pressreinstall;
close FILEOUT;
system("chmod a+x $destfile");
}
} elsif($filename eq "DPKG-SELECT") {
if ( open(FILEOUT,">$destfile") ) {
print FILEOUT $pressselect;
close FILEOUT;
system("chmod a+x $destfile");
}
} elsif($filename eq "DPKG-UNSELECT") {
if ( open(FILEOUT,">$destfile") ) {
print FILEOUT $pressunselect;
close FILEOUT;
system("chmod a+x $qdestfile");
}
} else {
$qfilename=~s!^CONTENTS!!;
system("cat $qfilename > $qdestfile");
}
}
sub run
{
my($archive,$filename)=@_;
my $qarchive = quote($archive);
my $qfilename = quote($filename);
if($filename eq "DPKG-REMOVE") {
system("dpkg --remove $qarchive");
} elsif($filename eq "APT-REMOVE") {
system("apt-get remove $qarchive");
} elsif($filename eq "DPKG-PURGE") {
system("dpkg --purge $qarchive");
} elsif($filename eq "APT-PURGE") {
system("apt-get --purge remove $qarchive");
} elsif($filename eq "DPKG-REPACK") {
system("dpkg-repack $qarchive");
} elsif($filename eq "DPKG-SELECT") {
system("echo $aqrchive install | dpkg --set-selections");
} elsif($filename eq "DPKG-UNSELECT") {
system("echo $qarchive deinstall | dpkg --set-selections");
} elsif($filename eq "APT-REINSTALL") {
system("apt-get -u --reinstall install $qarchive");
} elsif($filename eq "DPKG-RECONFIGURE") {
system("dpkg-reconfigure $qarchive");
} elsif($filename=~/^DEBIAN/) {
$qfilename=~s!^DEBIAN!!;
system("/var/lib/dpkg/info/$qarchive.$qfilename");
} else {
$qfilename=~s!^CONTENTS!!;
system($qfilename);
}
}
$pressrepack=<