Added get-packages method for urpmi backend
This commit is contained in:
parent
db032465e8
commit
97bc7dfe83
@ -15,6 +15,7 @@ dist_helper_DATA = \
|
||||
install-packages.pl \
|
||||
remove-packages.pl \
|
||||
search-group.pl \
|
||||
get-packages.pl \
|
||||
$(NULL)
|
||||
|
||||
install-data-hook:
|
||||
|
53
backends/urpmi/helpers/get-packages.pl
Executable file
53
backends/urpmi/helpers/get-packages.pl
Executable file
@ -0,0 +1,53 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
use strict;
|
||||
|
||||
use lib;
|
||||
use File::Basename;
|
||||
|
||||
BEGIN {
|
||||
push @INC, dirname($0);
|
||||
}
|
||||
|
||||
use urpm;
|
||||
use urpm::media;
|
||||
use urpm::args;
|
||||
|
||||
use urpmi_backend::open_db;
|
||||
use urpmi_backend::tools;
|
||||
use urpmi_backend::filters;
|
||||
|
||||
use perl_packagekit::enums;
|
||||
use perl_packagekit::prints;
|
||||
|
||||
# One argument (the filter)
|
||||
exit if ($#ARGV != 0);
|
||||
my @filters = split(/;/, $ARGV[0]);
|
||||
|
||||
my $urpm = urpm->new_parse_cmdline;
|
||||
|
||||
urpm::media::configure($urpm);
|
||||
|
||||
my $db = open_rpm_db();
|
||||
$urpm->compute_installed_flags($db);
|
||||
|
||||
# Here we display installed packages
|
||||
if(not grep(/^${\FILTER_NOT_INSTALLED}$/, @filters)) {
|
||||
$db->traverse(sub {
|
||||
my ($pkg) = @_;
|
||||
if(filter($pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1})) {
|
||||
pk_print_package(INFO_INSTALLED, get_package_id($pkg), ensure_utf8($pkg->summary));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
# Here are package which can be installed
|
||||
if(not grep(/^${\FILTER_INSTALLED}$/, @filters)) {
|
||||
foreach my $pkg(@{$urpm->{depslist}}) {
|
||||
if($pkg->flag_upgrade) {
|
||||
if(filter($pkg, \@filters, {FILTER_DEVELOPMENT => 1, FILTER_GUI => 1})) {
|
||||
pk_print_package(INFO_AVAILABLE, get_package_id($pkg), ensure_utf8($pkg->summary));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -235,6 +235,18 @@ backend_search_group (PkBackend *backend, PkFilterEnum filters, const gchar *sea
|
||||
g_free (filters_text);
|
||||
}
|
||||
|
||||
/**
|
||||
* backend_get_packages:
|
||||
*/
|
||||
static void
|
||||
backend_get_packages (PkBackend *backend, PkFilterEnum filters)
|
||||
{
|
||||
gchar *filters_text;
|
||||
filters_text = pk_filter_enums_to_text (filters);
|
||||
pk_backend_spawn_helper (spawn, "get-packages.pl", filters_text, NULL);
|
||||
g_free (filters_text);
|
||||
}
|
||||
|
||||
|
||||
PK_BACKEND_OPTIONS (
|
||||
"URPMI", /* description */
|
||||
@ -247,7 +259,7 @@ PK_BACKEND_OPTIONS (
|
||||
backend_get_depends, /* get_depends */
|
||||
backend_get_details, /* get_details */
|
||||
backend_get_files, /* get_files */
|
||||
NULL, /* get_packages */
|
||||
backend_get_packages, /* get_packages */
|
||||
NULL, /* get_repo_list */
|
||||
NULL, /* get_requires */
|
||||
backend_get_update_detail, /* get_update_detail */
|
||||
|
Loading…
Reference in New Issue
Block a user