+sub slice_dir_port {
+ my ($self,$slice) = @_;
+ my ( undef, $dir, $port, undef ) = getgrnam($slice);
+ die "getgrnam $slice: $!" if $!;
+ warn "# slice_dir_port $slice = $dir $port\n";
+ return ( $dir, $port );
+}
+
+sub dir2gearman {
+ my $self = shift;
+ my $dir = shift;
+ $dir =~ s/\W+/_/g;
+ $dir =~ s/^_+//;
+ $dir =~ s{_\d+$}{};
+ return join('_', $dir, @_);
+}
+