uawdijnntqw1x1x1
IP : 216.73.216.155
Hostname : vm5018.vps.agava.net
Kernel : Linux vm5018.vps.agava.net 3.10.0-1127.8.2.vz7.151.14 #1 SMP Tue Jun 9 12:58:54 MSK 2020 x86_64
Disable Function : None :)
OS : Linux
PATH:
/
var
/
..
/
usr
/
share
/
java
/
..
/
..
/
bin
/
dpkg-name
/
/
#!/usr/bin/perl # # dpkg-name # # Copyright © 1995,1996 Erick Branderhorst <branderh@debian.org>. # Copyright © 2009 Guillem Jover <guillem@debian.org>. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. use warnings; use strict; use File::Basename; use File::Path; use Dpkg; use Dpkg::Gettext; use Dpkg::ErrorHandling; use Dpkg::Control; use Dpkg::Arch qw(get_host_arch); textdomain("dpkg-dev"); my %options = ( subdir => 0, destdir => "", createdir => 0, overwrite => 0, symlink => 0, architecture => 1, ); sub version() { printf(_g("Debian %s version %s.\n"), $progname, $version); } sub usage() { printf(_g("Usage: %s [<option>...] <file>...\n"), $progname); print(_g(" Options: -a, --no-architecture no architecture part in filename. -o, --overwrite overwrite if file exists. -k, --symlink don't create a new file, but a symlink. -s, --subdir [dir] move file into subdir (use with care). -c, --create-dir create target dir if not there (use with care). -h, --help show this help message. -v, --version show the version. file.deb changes to <package>_<version>_<architecture>.<package_type> according to the 'underscores convention'. ")); } sub fileexists($) { my ($filename) = @_; if (-f $filename) { return 1; } else { warning(_g("cannot find '%s'"), $filename); return 0; } } sub filesame($$) { my ($a, $b) = @_; my @sta = stat($a); my @stb = stat($b); # Same device and inode numbers. return (@sta and @stb and $sta[0] == $stb[0] and $sta[1] == $stb[1]); } sub getfields($) { my ($filename) = @_; # Read the fields open(CDATA, '-|', "dpkg-deb", "-f", "--", $filename) || syserr(_g("cannot open %s"), $filename); my $fields = Dpkg::Control->new(type => CTRL_PKG_DEB); $fields->parse(\*CDATA, sprintf(_g("binary control file %s"), $filename)); close(CDATA); return $fields; } sub getarch($$) { my ($filename, $fields) = @_; my $arch = $fields->{Architecture}; if (!$fields->{Architecture} and $options{architecture}) { $arch = get_host_arch(); warning(_g("assuming architecture '%s' for '%s'"), $arch, $filename); } return $arch; } sub getname($$$) { my ($filename, $fields, $arch) = @_; my $pkg = $fields->{Package}; (my $version = $fields->{Version}) =~ s/.*://; my $type = $fields->{'Package-Type'} || 'deb'; my $tname; if ($options{architecture}) { $tname = "$pkg\_$version\_$arch.$type"; } else { $tname = "$pkg\_$version.$type"; } (my $name = $tname) =~ s/ //g; if ($tname ne $name) { # control fields have spaces warning(_g("bad package control information for '%s'"), $filename); } return $name; } sub getdir($$$) { my ($filename, $fields, $arch) = @_; my $dir; if (!$options{destdir}) { $dir = dirname($filename); if ($options{subdir}) { my $section = $fields->{Section}; if (!$section) { $section = "no-section"; warning(_g("assuming section '%s' for '%s'"), $section, $filename); } if ($section ne "non-free" and $section ne "contrib" and $section ne "no-section") { $dir = "unstable/binary-$arch/$section"; } else { $dir = "$section/binary-$arch"; } } } else { $dir = $options{destdir}; } return $dir; } sub move($) { my ($filename) = @_; if (fileexists($filename)) { my $fields = getfields($filename); unless (exists $fields->{Package}) { warning(_g("no Package field found in '%s', skipping it"), $filename); return; } my $arch = getarch($filename, $fields); my $name = getname($filename, $fields, $arch); my $dir = getdir($filename, $fields, $arch); if (! -d $dir) { if ($options{createdir}) { if (mkpath($dir)) { info(_g("created directory '%s'"), $dir); } else { error(_g("cannot create directory '%s'"), $dir); } } else { error(_g("no such directory '%s', try --create-dir (-c) option"), $dir); } } my $newname = "$dir/$name"; my @command; if ($options{symlink}) { @command = ("ln", "-s", "--"); } else { @command = ("mv", "--"); } if (filesame($newname, $filename)) { warning(_g("skipping '%s'"), $filename); } elsif (-f $newname and !$options{overwrite}) { warning(_g("cannot move '%s' to existing file"), $filename); } elsif (system(@command, $filename, $newname) == 0) { info(_g("moved '%s' to '%s'"), basename($filename), $newname); } else { error(_g("mkdir can be used to create directory")); } } } @ARGV || usageerr(_g("need at least a filename")); while (@ARGV) { $_ = shift(@ARGV); if (m/^-[h?]|--help$/) { usage(); exit(0); } elsif (m/^-v|--version$/) { version(); exit(0); } elsif (m/^-c|--create-dir$/) { $options{createdir} = 1; } elsif (m/^-s|--subdir$/) { $options{subdir} = 1; if (-d $ARGV[0]) { $options{destdir} = shift(@ARGV); } } elsif (m/^-o|--overwrite$/) { $options{overwrite} = 1; } elsif (m/^-k|--symlink$/) { $options{symlink} = 1; } elsif (m/^-a|--no-architecture$/) { $options{architecture} = 0; } elsif (m/^--$/) { foreach (@ARGV) { move($_); } exit 0; } else { move($_); } } 0;
/var/../usr/share/java/../../bin/dpkg-name