mvfindpkgs.pl
This script is useful to find all the packages in your work area assuming those packages are nested w/in hierarchy. If all your packages are just /vesta-work/$USER/pkgname then this is probably not useful to you.
You can dl it here:
sub prt {
print "mvfindpkgs.pl: ", @_, " (\$0=$0)";
}
$w = $ARGV[0] || do{$tmp= `vgetconfig UserInterface DefaultWorkParent`;chop $tmp; $tmp . "/" . $ENV{USER}};
$w =~ m{/$} or $w .= "/";
prt "work dir: $w ";
# depth-first traversal of arg dir
sub process_dir {
my $dir = shift;
my @dirs = `ls -p $dir/|grep /\$`;
#prt scalar @dirs, " dirs in $dir";
foreach (@dirs) {
chomp;
my $is_co = 0;
my $is_scribble = 0;
my $is_plain_dir = 0;
chomp (my $canonical_dir = `csh -fc 'cd $dir$_;pwd'`);
chomp (my $w_snapshots_dir = `vattrib -g session-dir $canonical_dir`);
chomp (my $w_snapshots_ver = `vattrib -g session-ver-arc $canonical_dir`);
chomp (my $next_ver_num = `vattrib -g new-version $canonical_dir`);
if ($w_snapshots_dir eq "") {
$is_plain_dir = 1;
process_dir ("$dir$_");
} elsif ($next_ver_num eq "") {
$is_scribble = 1;
} else {
$is_co = 1;
}
$is_co and prt "checkout: $dir$_ ($w_snapshots_dir/$w_snapshots_ver)";
$is_scribble and prt "scribble: $dir$_ ($w_snapshots_dir/$w_snapshots_ver)";
}
}
process_dir($w);