/
/
usr
/
libexec
/
mc
/
extfs.d
EDITOR
/usr/libexec/mc/extfs.d/deb
SAVE
CLOSE
#! /usr/bin/perl # # Written by Fernando Alegre <alegre@debian.org> 1996 # # Applied patch by Dimitri Maziuk <emaziuk@curtin.edu.au> 1997 # (to handle new tar format) # # Modified by Fernando Alegre <alegre@debian.org> 1997 # (to handle both new and old tar formats) # # Modified by Patrik Rak <prak@post.cz> 1998 # (add by Michael Bramer Debian-mc-maintainer <grisu@debian.org>) # (to allow access to package control files) # # Modified by Martin Bialasinski <martinb@debian.org> 1999 # (deal with change in tar format) # # # Copyright (C) 1997 Free Software Foundation # sub quote { $_ = shift(@_); s/([^\w\/.+-])/\\$1/g; return($_); } sub mcdebfs_list { # # CAVEAT: Hard links are listed as if they were symlinks # Empty directories do not appear at all # local($archivename)=@_; local $qarchivename = quote($archivename); chop($date=`LC_ALL=C date "+%b %d %H:%M"`); chop($info_size=`dpkg -I $qarchivename | wc -c`); $install_size=length($pressinstall); print "dr-xr-xr-x 1 root root 0 $date CONTENTS\n"; print "dr-xr-xr-x 1 root root 0 $date DEBIAN\n"; print "-r--r--r-- 1 root root $info_size $date INFO\n"; print "-r-xr--r-- 1 root root $install_size $date INSTALL\n"; if ( open(PIPEIN, "LC_ALL=C dpkg-deb -c $qarchivename |") ) { while(<PIPEIN>) { @_ = split; $perm=$_[0]; $owgr=$_[1]; $size=$_[2]; if($_[3] =~ /^\d\d\d\d\-/) { # New tar format ($year,$mon,$day) = split(/-/,$_[3]); $month = ("Gee","Jan","Feb","Mar","Apr","May","Jun", "Jul","Aug","Sep","Oct","Nov","Dec")[$mon] || "Gee"; $time=$_[4]; $pathindex=5; } else { $mstring='GeeJanFebMarAprMayJunJulAugSepOctNovDec'; $month=$_[3]; $mon=index($mstring,$month) / 3; $day=$_[4]; $time=$_[5]; $year=$_[6]; $pathindex=7; } $path=$_[$pathindex++]; # remove leading ./ $path=~s/^\.\///; next if ($path eq ''); $arrow=$_[$pathindex++]; $link=$_[$pathindex++]; $link2=$_[$pathindex++]; $owgr=~s!/! !; if($arrow eq 'link') { # report hard links as soft links $arrow='->'; $link="/$link2"; substr($perm, 0, 1) = "l"; } if($arrow ne '') { $arrow=' ' . $arrow; $link= ' ' . $link; } $now=`date "+%Y %m"`; ($thisyear, $thismon) = split(/ /, $now); # show time for files younger than 6 months # but not for files with dates in the future if ($year * 12 + $mon > $thisyear * 12 + $thismon - 6 && $year * 12 + $mon <= $thisyear * 12 + $thismon) { print "$perm 1 $owgr $size $month $day $time CONTENTS/$path$arrow$link\n"; } else { print "$perm 1 $owgr $size $month $day $year CONTENTS/$path$arrow$link\n"; } } } if ( open(PIPEIN, "LC_ALL=C dpkg-deb -I $qarchivename |") ) { while(<PIPEIN>) { @_ = split; $size=$_[0]; last if $size =~ /:/; next if $size !~ /\d+/; if($_[4] eq '*') { $perm='-r-xr-xr-x'; $name=$_[5]; } else { $perm='-r--r--r--'; $name=$_[4]; } print "$perm 1 root root $size $date DEBIAN/$name\n"; } } } sub mcdebfs_copyout { local($archive,$filename,$destfile)=@_; local $qarchive = quote($archive); local $qfilename = quote($filename); local $qdestfile = quote($destfile); if($filename eq "INFO") { system("dpkg-deb -I $qarchive > $qdestfile"); } elsif($filename =~ /^DEBIAN/) { $qfilename=~s!^DEBIAN/!!; system("dpkg-deb -I $qarchive $qfilename > $qdestfile"); } elsif($filename eq "INSTALL") { if ( open(FILEOUT,">$destfile") ) { print FILEOUT $pressinstall; close FILEOUT; system("chmod a+x $qdestfile"); } } else { # files can be prepended with ./ or not, depending on the version of tar $qfilename=~s!^CONTENTS/!!; system("dpkg-deb --fsys-tarfile $qarchive | tar xOf - $qfilename ./$qfilename > $qdestfile 2>/dev/null"); } } sub mcdebfs_run { local($archive,$filename)=@_; local $qarchive = quote($archive); if($filename eq "INSTALL") { print "Installing $archive\n"; system("dpkg -i $qarchive"); } else { use File::Temp qw(mkdtemp); my $template = "/tmp/mcdebfs.run.XXXXXX"; $template="$ENV{MC_TMPDIR}/mcdebfs.XXXXXX" if ($ENV{MC_TMPDIR}); $tmpdir = mkdtemp($template); $tmpcmd="$tmpdir/run"; &mcdebfs_copyout($archive, $filename, $tmpcmd); system("chmod u+x $tmpcmd"); system($tmpcmd); unlink($tmpcmd); rmdir($tmpdir); } } $pressinstall=<<EOInstall; WARNING Don\'t use this method if you are not willing to reinstall everything... 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. In Debian systems, a package is automatically upgraded when you install a new version of it. There is no special upgrade option. Install always works. EOInstall umask 077; if($ARGV[0] eq "list") { shift; &mcdebfs_list(@ARGV); exit 0; } elsif($ARGV[0] eq "copyout") { shift; &mcdebfs_copyout(@ARGV); exit 0; } elsif($ARGV[0] eq "run") { shift; &mcdebfs_run(@ARGV); exit 0; } exit 1;
Ln 1, Col 1
FORMAT
WRAP
SAVE FILE
ONLINE
extfs.d
36 items
21:19:23
TERMINAL FM
×
NAVIGATION
Root
Parent Dir
Refresh
ACTIONS
New Folder
New File
Upload Files
New Symlink
SELECTION
Select All
Deselect
Delete Selected
NEW FOLDER
FOLDER NAME
NEW FILE
FILE NAME
UPLOAD FILES
Click to browse or drag & drop files
No files selected
RENAME
CURRENT NAME
NEW NAME
COPY FILE
SOURCE
DESTINATION NAME
CHMOD
FILE / FOLDER
CURRENT PERMISSIONS
NEW MODE (octal)
755 (rwxr-xr-x)
644 (rw-r--r--)
777 (rwxrwxrwx)
600 (rw-------)
444 (r--r--r--)
CONFIRM DELETE
You are about to delete:
This action is irreversible. All contents will be permanently removed.
NEW SYMLINK
LINK TARGET (path)
LINK NAME
Edit
Preview
Download
Rename
Copy
Chmod
Delete