101 lines
2.9 KiB
Perl
Executable File
101 lines
2.9 KiB
Perl
Executable File
#!/usr/bin/perl -w
|
|
|
|
use strict;
|
|
use Debian::DictionariesCommon q(dico_checkroot);
|
|
use Debconf::Client::ConfModule q(:all);
|
|
|
|
dico_checkroot ();
|
|
|
|
die "Usage: $0 package-name\n" if (scalar @ARGV != 1);
|
|
|
|
version ('2.0');
|
|
|
|
my $class = "ispell";
|
|
my $question = "dictionaries-common/default-$class";
|
|
my $script = "/usr/share/dictionaries-common/dc-debconf-select.pl";
|
|
my $program = "remove-default-$class";
|
|
my $debug = 1 if exists $ENV{'DICT_COMMON_DEBUG'};
|
|
my $newflag = "/var/cache/dictionaries-common/flag-$class-new";
|
|
my %title = ('ispell' => "Dictionaries-common: Ispell dictionary",
|
|
'wordlist' => "Dictionaries-common: Wordlist dictionary"
|
|
);
|
|
|
|
my ($errorcode, $value) = get $question;
|
|
|
|
if ($errorcode == 0) {
|
|
require $script;
|
|
|
|
my $pkg = $ARGV[0];
|
|
my $languages = &dico_parse_languages($class,"languages");
|
|
my @newchoices = ();
|
|
my %langsinpkg = ();
|
|
|
|
# Get list of languages provided by package being removed. Check
|
|
# first if package is already removed, some packages using cdbs
|
|
# call this script twice, the second with package already removed
|
|
if ( exists $languages->{$pkg} ){
|
|
foreach ( split (/\s*,\s*/, $languages->{$pkg}) ){
|
|
$langsinpkg{$_}++;
|
|
}
|
|
# Update $languages removing $pkg entry
|
|
delete $languages->{$pkg};
|
|
|
|
# Update question variables with new values
|
|
my ($choices, $echoices ) = &dico_get_all_choices($class,$languages);
|
|
subst ($question, "choices", $choices);
|
|
subst ($question, "echoices", $echoices);
|
|
|
|
# Ask with new values if current value is being removed and langs are left
|
|
if ( %$languages && exists $langsinpkg{$value} ) {
|
|
fset ($question, "seen", "false");
|
|
input ("critical", $question);
|
|
title ($title{$class});
|
|
go ();
|
|
}
|
|
}
|
|
}
|
|
|
|
# If $newflag exists, we are removing an IDWP in the same run another IDWP of the same
|
|
# class is to be installed. If the to-be-installed IDWP is the new selection update-default-
|
|
# -$class will fail because the new IDWP is not yet unpacked. Since in this case update-
|
|
# -default-$class will be run in new IDWP postinst, we do not it here and so avoid problems.
|
|
if ( -f $newflag ) {
|
|
print STDERR "$program: $newflag exists, defer update-default-$class run\n" if $debug;
|
|
} else {
|
|
system "update-default-$class";
|
|
}
|
|
|
|
# Local Variables:
|
|
# perl-indent-level: 2
|
|
# End:
|
|
|
|
__END__
|
|
|
|
=head1 NAME
|
|
|
|
remove-default-ispell - remove default ispell dictionary
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
remove-default-ispell <package>
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
WARNING: Not to be used from the command line unless you know very well what you are doing.
|
|
|
|
When called from package postrm, this program will take care of removing the entries
|
|
associated to a ispell package from the dictionaries-common database
|
|
and call for the new selection if it was the default one.
|
|
|
|
=head1 SEE ALSO
|
|
|
|
The dictionaries-common policy document
|
|
|
|
=head1 AUTHORS
|
|
|
|
Rafael Laboissiere
|
|
|
|
=cut
|
|
|
|
# LocalWords: ispell wordlist
|