summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2004-02-06 19:49:10 +0000
committerPascal Rigaux <pixel@mandriva.com>2004-02-06 19:49:10 +0000
commit428226c89c0b9631f120af80e0138f4c1ac9a794 (patch)
tree3646a46f90c2205bf22f9eee1b6a255ee0a288b7
parent5fb90f8d684687e0066fd09a5a1b2d58d117b28d (diff)
downloaddrakx-428226c89c0b9631f120af80e0138f4c1ac9a794.tar
drakx-428226c89c0b9631f120af80e0138f4c1ac9a794.tar.gz
drakx-428226c89c0b9631f120af80e0138f4c1ac9a794.tar.bz2
drakx-428226c89c0b9631f120af80e0138f4c1ac9a794.tar.xz
drakx-428226c89c0b9631f120af80e0138f4c1ac9a794.zip
(fileshare_config): quite different way of handling it, asking first if user
wants sharing or not, then asking which protocol (when users wants sharing). Removing or installing the server package handling the protocols (smb or nfs).
-rw-r--r--perl-install/any.pm49
1 files changed, 24 insertions, 25 deletions
diff --git a/perl-install/any.pm b/perl-install/any.pm
index 301709830..9a2c17472 100644
--- a/perl-install/any.pm
+++ b/perl-install/any.pm
@@ -810,28 +810,6 @@ sub fileshare_config {
my @l = (N_("No sharing"), N_("Allow all users"), N_("Custom"));
my $restrict = exists $conf{RESTRICT} ? text2bool($conf{RESTRICT}) : 1;
- if ($restrict) {
- #- verify we can export in $type
- my %type2file = (nfs => [ '/etc/init.d/nfs', 'nfs-utils' ], smb => [ '/etc/init.d/smb', 'samba' ]);
- my @wanted = $type ? $type : keys %type2file;
- my @have = grep { -e $type2file{$_}[0] } @wanted;
- if (!@have) {
- if (@wanted == 1) {
- $in->ask_okcancel('', N("The package %s needs to be installed. Do you want to install it?", $type2file{$wanted[0]}[1]), 1) or return;
- } else {
- my $wanted = $in->ask_many_from_list('', N("You can export using NFS or Samba. Please select which you'd like to use."),
- { list => \@wanted }) or return;
- @wanted = @$wanted or return;
- }
- $in->do_pkgs->install(map { $type2file{$_}[1] } @wanted);
- @have = grep { -e $type2file{$_}[0] } @wanted;
- }
- if (!@have) {
- $in->ask_warn('', N("Mandatory package %s is missing", $wanted[0]));
- return;
- }
- }
-
my $r = $in->ask_from_list_('fileshare',
N("Would you like to allow users to share some of their directories?
Allowing this will permit users to simply click on \"Share\" in konqueror and nautilus.
@@ -840,11 +818,32 @@ Allowing this will permit users to simply click on \"Share\" in konqueror and na
"),
\@l, $l[$restrict ? 0 : 1]) or return;
$restrict = $r ne $l[1];
+ my $custom = $r eq $l[2];
+ if ($r ne $l[0]) {
+ #- verify we can export in $type
+ my %type2file = (nfs => [ 'nfs-utils', '/etc/init.d/nfs' ], smb => [ 'samba-server', '/etc/init.d/smb' ]);
+ my %l;
+ if ($type) {
+ %l = ($type => 1);
+ } else {
+ %l = map_each { $::a => -e $::b->[1] } %type2file;
+ $in->ask_from('', N("You can export using NFS or Samba. Please select which you'd like to use."),
+ [ map { { text => $_, val => \$l{$_}, type => 'bool' } } keys %l ]) or return;
+ }
+ foreach (keys %l) {
+ my ($pkg, $file) = @{$type2file{$_}} or die "unknown type $_\n";
+ if ($l{$_}) {
+ $in->do_pkgs->ensure_is_installed($pkg, $file) or return;
+ } elsif (-e $file) {
+ $in->ask_okcancel('', N("The package %s is going to be removed.", $pkg), 1) or return;
+ $in->do_pkgs->remove($pkg);
+ }
+ }
+ }
$conf{RESTRICT} = bool2yesno($restrict);
-
setVarsInSh($file, \%conf);
- if ($r eq $l[2]) {
- # custom
+
+ if ($custom) {
run_program::rooted($::prefix, 'groupadd', '-r', 'fileshare');
if ($in->ask_from_no_check(
{