#!/usr/bin/perl -w

if (@ARGV != 2) {
	die "usage: $0 <clustertoc> <metacluster>\n";
}

$clustertoc = shift(@ARGV);
$metacluster = shift(@ARGV);

open(CLUSTERTOC, $clustertoc) || die "opening $clustertoc: $!\n";
@lines = <CLUSTERTOC>;
close(CLUSTERTOC);

print join(" ", find_members($metacluster, @lines)), "\n"; 

sub find_members {
	my ($metacluster) = shift(@_);
	my (@lines) = @_;

	my ($found);
	my (@members) = ();

	if ($metacluster !~ /^SUNWC/) {
		return $metacluster;
	}
	$found = 0;
	for $line (@lines) {
		chomp($line);
		if ($line =~ m/^METACLUSTER=$metacluster\b/) {
			$found = 1;
		}
		if ($line =~ m/^CLUSTER=$metacluster\b/) {
			$found = 1;
		}
		if ($found && $line =~ m/^END\b/) {
			last;
		}
		if ($found && $line =~ m/^SUNW_CSRMEMBER=(\S+)/) {
			push(@members, find_members($1, @lines));
		}
	}

	if (@members == 0) {
		die "could not find members for metacluster $metacluster\n";
	}

	return @members;
}
