diff --git a/contrib/bin/fusiondirectory-setup b/contrib/bin/fusiondirectory-setup index 77b1ac5d8f77a04ae06f73465c25f5d741ac6b10..b5be0e6aa864d1d071499f7f4e8dba595057a8f9 100644 --- a/contrib/bin/fusiondirectory-setup +++ b/contrib/bin/fusiondirectory-setup @@ -1142,17 +1142,36 @@ sub install_plugins { $dir = dir ($tmp_plugins_dir."/".$name); } - my @plugins = $dir->children(no_hidden => 1); + # List non-hidden children, grep directories, and sort by name + my @plugins = + sort {$a->basename cmp $b->basename} + grep {$_->is_dir} + $dir->children(no_hidden => 1); + + print "Available plugins:\n"; + + my $i = 1; + foreach my $plugin_path (@plugins) { + print $i++.":".$plugin_path->basename."\n"; + } + + my $user_input = ask_user_input("Which plugins do you want to install (use \"all\" to install all plugins)?"); + my @plugins_to_install = split(/\s/, $user_input); chdir ($dir) or die ("! Unable to move to $dir\n"); + $i = 0; foreach my $plugin_path (@plugins) { - if (!$plugin_path->is_dir) { - next; - } + $i++; my $plugin = $plugin_path->basename; + if (grep {($_ eq "all") or ($_ eq $i) or ($_ eq $plugin)} @plugins_to_install) { + print "Installing plugin $plugin\n"; + } else { + next; + } + # copy addons into plugins create_and_copy_plugin_dir($plugin_path."/addons/", $vars{fd_home}."/plugins/addons/");