#!/bin/perl
# gen_optvars (07/21/2002 rss)

$| = 1;
use strict;

#
# Declare variables
#

my $ct = $ARGV[0] || "ct";
my $atria = "/usr/atria/bin";
my ($rc, $ct_cmd, $cmd, @tok1, @tok2);

#
# Declare subs
#

sub fix_array {
  my (@fix1, @fix2);

  @fix1 = sort(@_);
  @fix2 = ();

  loop: for (my $i = 0; $i <= $#fix1; $i++ ) {
    next loop if (($i > 0) && ($fix1[$i] eq $fix1[$i - 1]));
    @fix2[++$#fix2] = $fix1[$i];
  }

  return @fix2;
}

sub doit {
  my $cmd = shift;
  my @tok_list = @_;
  if (scalar(@tok_list) > 0) {
    @tok_list = fix_array(@tok_list);
    print $ct, "opt_", $cmd, "=\"", join(" ", @tok_list), "\"\n";
  }
}

#
# Begin main program
#

if ($ct eq "mt") {
  $ct_cmd = "/usr/atria/bin/multitool";
} else {
  $ct_cmd = "/usr/atria/bin/cleartool";
}

my @buffer = qx($ct_cmd help);

$cmd = "";

for (@buffer) {
  chop;
  if (/^Usage: (\w+)/) {
    if ($cmd ne "") {
      $tok2[++$#tok2] = "-help";
      doit($cmd, @tok2);
    }
    $cmd = $1;
    @tok2 = ();
  }
  my @tok1 = split(/[ \{\}\[\]]+/);
  for (@tok1) {
    if (/^-/) {
      $tok2[++$#tok2] = $_;
    }
  }
}

doit($cmd, @tok2);

#
# gen_optvars ends here
