1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
# --
# Copyright (C) 2001-2021 OTRS AG, https://otrs.com/
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (GPL). If you
# did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.
# --
package Kernel::System::Console::Command::Admin::Package::RepositoryList;
use strict;
use warnings;
use parent qw(Kernel::System::Console::BaseCommand);
our @ObjectDependencies = (
'Kernel::Config',
'Kernel::System::Package',
);
sub Configure {
my ( $Self, %Param ) = @_;
$Self->Description('List all known OTRS package repsitories.');
return;
}
sub Run {
my ( $Self, %Param ) = @_;
$Self->Print("<yellow>Listing OTRS package repositories...</yellow>\n");
my $Count = 0;
my %List;
if ( $Kernel::OM->Get('Kernel::Config')->Get('Package::RepositoryList') ) {
%List = %{ $Kernel::OM->Get('Kernel::Config')->Get('Package::RepositoryList') };
}
%List = ( %List, $Kernel::OM->Get('Kernel::System::Package')->PackageOnlineRepositories() );
if ( !%List ) {
$Self->PrintError("No package repositories configured.");
return $Self->ExitCodeError();
}
for my $URL ( sort { $List{$a} cmp $List{$b} } keys %List ) {
$Count++;
print "+----------------------------------------------------------------------------+\n";
print "| $Count) Name: $List{$URL}\n";
print "| URL: $URL\n";
}
print "+----------------------------------------------------------------------------+\n";
print "\n";
$Self->Print("<yellow>Listing OTRS package repository contents...</yellow>\n");
for my $URL ( sort { $List{$a} cmp $List{$b} } keys %List ) {
print
"+----------------------------------------------------------------------------+\n";
print "| Package Overview for Repository $List{$URL}:\n";
my @Packages = $Kernel::OM->Get('Kernel::System::Package')->PackageOnlineList(
URL => $URL,
Lang => $Kernel::OM->Get('Kernel::Config')->Get('DefaultLanguage'),
);
my $PackageCount = 0;
PACKAGE:
for my $Package (@Packages) {
# Just show if PackageIsVisible flag is enabled.
if (
defined $Package->{PackageIsVisible}
&& !$Package->{PackageIsVisible}->{Content}
)
{
next PACKAGE;
}
$PackageCount++;
print
"+----------------------------------------------------------------------------+\n";
print "| $PackageCount) Name: $Package->{Name}\n";
print "| Version: $Package->{Version}\n";
print "| Vendor: $Package->{Vendor}\n";
print "| URL: $Package->{URL}\n";
print "| License: $Package->{License}\n";
print "| Description: $Package->{Description}\n";
print "| Install: $URL:$Package->{File}\n";
}
print
"+----------------------------------------------------------------------------+\n";
print "\n";
}
$Self->Print("<green>Done.</green>\n");
return $Self->ExitCodeOk();
}
1;
|