* Added get-updates method.

This commit is contained in:
Aurelien Lefebvre 2008-05-28 11:54:32 +02:00
parent 405eda8acc
commit f959ee4401
3 changed files with 59 additions and 1 deletions

View File

@ -9,6 +9,7 @@ dist_helper_DATA = \
get-details.pl \
get-depends.pl \
get-files.pl \
get-updates.pl \
$(NULL)
install-data-hook:

View File

@ -0,0 +1,44 @@
#!/usr/bin/perl
use strict;
use lib;
use File::Basename;
BEGIN {
push @INC, dirname($0);
}
use urpm;
use urpm::args;
use urpm::media;
use urpm::select;
use MDK::Common;
use urpmi_backend::tools;
use perl_packagekit::enums;
use perl_packagekit::prints;
# No arguments authorized
exit if($#ARGV != -1);
my $urpm = urpm->new_parse_cmdline;
urpm::media::configure($urpm);
my $state = {};
my %requested;
my $restart = urpm::select::resolve_dependencies($urpm, $state, \%requested,
auto_select => 1);
my %selected = %{$state->{selected} || {}};
my @ask_unselect = urpm::select::unselected_packages($urpm, $state);
my @to_remove = urpm::select::removed_packages($urpm, $state);
my @to_install = @{$urpm->{depslist}}[sort { $a <=> $b } keys %{$state->{selected}}];
my ($src, $binary) = partition { $_->arch eq 'src' } @to_install;
@to_install = @$binary;
foreach(@to_install) {
# Fix me
# Be default, we set to bugfix info type
# Need to be implemented, see urpmq source.
pk_print_package(INFO_BUGFIX, get_package_id($_), $_->summary);
}

View File

@ -103,6 +103,19 @@ backend_get_depends (PkBackend *backend, PkFilterEnum filters, const gchar *pack
g_free (filters_text);
}
/**
* backend_get_updates:
*/
static void
backend_get_updates (PkBackend *backend, PkFilterEnum filters)
{
gchar *filters_text;
filters_text = pk_filter_enums_to_text (filters);
pk_backend_spawn_helper (spawn, "get-updates.pl", filters_text, NULL);
g_free (filters_text);
}
PK_BACKEND_OPTIONS (
"URPMI", /* description */
@ -119,7 +132,7 @@ PK_BACKEND_OPTIONS (
NULL, /* get_repo_list */
NULL, /* get_requires */
NULL, /* get_update_detail */
NULL, /* get_updates */
backend_get_updates, /* get_updates */
NULL, /* install_files */
NULL, /* install_packages */
NULL, /* install_signature */