summaryrefslogtreecommitdiffstats
path: root/src/vfs/extfs/helpers/deba.in
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 17:44:12 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 17:44:12 +0000
commit8ccb487c21368a7fdc8c7c72315325bf0aa06147 (patch)
treeb2056fae01d325924508a41731edfbd4c3cddd23 /src/vfs/extfs/helpers/deba.in
parentInitial commit. (diff)
downloadmc-8ccb487c21368a7fdc8c7c72315325bf0aa06147.tar.xz
mc-8ccb487c21368a7fdc8c7c72315325bf0aa06147.zip
Adding upstream version 3:4.8.29.upstream/3%4.8.29upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/vfs/extfs/helpers/deba.in')
-rw-r--r--src/vfs/extfs/helpers/deba.in107
1 files changed, 107 insertions, 0 deletions
diff --git a/src/vfs/extfs/helpers/deba.in b/src/vfs/extfs/helpers/deba.in
new file mode 100644
index 0000000..3d1a552
--- /dev/null
+++ b/src/vfs/extfs/helpers/deba.in
@@ -0,0 +1,107 @@
+#! @PERL@
+#
+# 1999 (c) Piotr Roszatycki <dexter@debian.org>
+# This software is under GNU license
+# last modification: 1999-12-08
+#
+# deba
+
+sub quote {
+ $_ = shift(@_);
+ s/([^\w\/.+-])/\\$1/g;
+ return($_);
+}
+
+sub list
+{
+ my($qarchive)=@_;
+ $qarchive = quote($qarchive);
+ chop($date=`LC_ALL=C date "+%m-%d-%Y %H:%M"`);
+ chop($info_size=`apt-cache show $qarchive | wc -c`);
+ $install_size=length($pressinstall);
+ $upgrade_size=length($pressupgrade);
+
+ print "-r--r--r-- 1 root root $info_size $date INFO\n";
+
+ chop($debd = `dpkg -s $qarchive | grep -i ^Version | sed 's/^version: //i'`);
+ chop($deba = `apt-cache show $qarchive | grep -i ^Version | sed 's/^version: //i'`);
+ if( ! $debd ) {
+ print "-r-xr--r-- 1 root root $install_size $date INSTALL\n";
+ } elsif( $debd ne $deba ) {
+ print "-r-xr--r-- 1 root root $upgrade_size $date UPGRADE\n";
+ }
+}
+
+sub copyout
+{
+ my($archive,$filename,$destfile)=@_;
+ my $qarchive = quote($archive);
+ my $qdestfile = quote($destfile);
+ if($filename eq "INFO") {
+ system("apt-cache show $qarchive > $qdestfile");
+ } elsif($filename eq "INSTALL") {
+ if ( open(FILEOUT, "> $destfile") ) {
+ print FILEOUT $pressinstall;
+ close FILEOUT;
+ system("chmod a+x $qdestfile");
+ }
+ } elsif($filename eq "UPGRADE") {
+ if ( open(FILEOUT, ">, $destfile") ) {
+ print FILEOUT $pressupgrade;
+ close FILEOUT;
+ system("chmod a+x $qdestfile");
+ }
+ } else {
+ die "extfs: $filename: No such file or directory\n";
+ }
+}
+
+sub run
+{
+ my($archive,$filename)=@_;
+ my $qarchive = quote($archive);
+ if($filename eq "INSTALL") {
+ system("apt-get install $qarchive");
+ } elsif($filename eq "UPGRADE") {
+ system("apt-get install $qarchive");
+ } else {
+ die "extfs: $filename: Permission denied\n";
+ }
+}
+
+$pressinstall=<<EOInstall;
+
+ WARNING
+ Don\'t use this method if you are not willing to install this package...
+
+This is not a real file. It is a way to install the package you are browsing.
+
+To install this package go back to the panel and press Enter on this file.
+
+EOInstall
+
+$pressupgrade=<<EOInstall;
+
+ WARNING
+ Don\'t use this method if you are not willing to upgrade this package...
+
+This is not a real file. It is a way to upgrade the package you are browsing.
+
+To upgrade this package go back to the panel and press Enter on this file.
+
+EOInstall
+
+
+umask 077;
+
+chop($name = `if [ -f "$ARGV[1]" ]; then cat $ARGV[1]; else echo $ARGV[1]; fi`);
+$name =~ s%.*/([0-9a-z.-]*)_.*%$1%;
+
+exit 1 unless $name;
+
+if($ARGV[0] eq "list") { &list($name); exit 0; }
+elsif($ARGV[0] eq "copyout") { &copyout($name,$ARGV[2],$ARGV[3]); exit 0; }
+elsif($ARGV[0] eq "run") { &run($name,$ARGV[2]); exit 0; }
+
+exit 1;
+