diff --git a/mxmount/mxmount b/mxmount/mxmount index 47d69d61..7c5c9524 100755 --- a/mxmount/mxmount +++ b/mxmount/mxmount @@ -78,11 +78,18 @@ sub create_exports { foreach my $mp (@$allmp) { next if($mp->{noexport}); - @CMD = ($mp->{mountpoint}, $mp->{exportopts}); - - print join " ", "$exports: ", @CMD, "\n"; - print EXPORTS join " ", @CMD, "\n"; - + my ($mountpoint,$exportopts)=($mp->{mountpoint}, $mp->{exportopts}); # '/amd/theinternet/1','@amd(sync,rw,...)' + my ($hostspec,$optspec)=$exportopts=~/^([^(]+)(.*)/; # '@amd','(sync,rw,...)' + my ($opts)=$optspec=~/\((.*)\)/; # 'sync,rw,...' + my $hosts=''; + warn "export $mountpoint to $hostspec opts $opts\n"; + if (my ($group) = $hostspec=~/^@(.+)/) { + $hosts=`hostconfig --list $group`; # expanded group + $hosts or warn "group $group is empty\n"; + } else { + $hosts=$hostspec; # single host + } + $hosts and printf EXPORTS "%s -%s %s\n",$mountpoint,$opts,$hosts; } close EXPORTS; }