#!/usr/bin/perl

use lib qw(/usr/lib/libDrakX);
use common;
use pkgs;
use interactive;
use do_pkgs;
use run_program;
use standalone;

my $in = interactive->vnew;

my $wait = $in->wait_message(N("Hardware packages removal"),
			     N("Finding unused hardware packages..."));

my $do_pkgs = do_pkgs->do_pkgs($in);

my @all_hardware_packages = (pkgs::detect_hardware_packages($do_pkgs, 'match_all_hardware'));
my @used_hardware_packages = (pkgs::detect_hardware_packages($do_pkgs));
my @unneeded_hardware_packages = difference2(\@all_hardware_packages, \@used_hardware_packages);
my @unused_hardware_packages = $do_pkgs->are_installed(@unneeded_hardware_packages);

undef $wait;

#- we should have some gurpme
if (@unused_hardware_packages &&
    $in->ask_yesorno(
	N("Hardware packages removal"),
	N("The following hardware packages do not seem to be useful for your system:") . "\n" .
	join("\n", map { "  " . $_ } sort(@unused_hardware_packages)) . "\n" .
	N("Do you want to remove these packages?"))) {
    my $_wait = $in->wait_message(N("Please wait"), N("Removing packages..."));
    run_program::run('urpme', '--auto', @unused_hardware_packages);
}