- #!/usr/bin/perl -w
-
- ## allow user to specify a p4 version bin directory
- ## either via commmand line or menu, then return.
-
-
- use Cwd;
- use File::Basename;
- use File::Spec;
- use Getopt::Std;
-
-
- # set the directory where the p4 versions are
- my $dir = File::Spec->rel2abs( dirname( $0 ) );
- $dir = File::Spec->catfile( $dir, "p4versions" );
-
- sub dumb_menu {
- use Term::ReadLine;
-
- $term = new Term::ReadLine "menu_result";
-
- my $num_items = @_;
- return unless $num_items;
-
- print "p4 and p4d versions found:\n";
- print " $_\n" for @_;
-
- my $ver;
- do {
- my $prompt = "Enter version number to use: ";
- $prompt .= " [$_[0]] " if $num_items == 1;
- $ver = $term->readline( $prompt );
- $ver = $_[0] if $num_items == 1 && (! defined $ver || ! length $ver);
- } until grep { $ver eq $_ } @_ ;
-
- return $ver;
- }
-
-
- sub find_versions {
- my $save_dir = cwd;
- chdir $dir;
- my @versions = sort glob "*";
- chdir $save_dir;
-
- return @versions;
- }
-
-
- sub usage {
- die "usage: p4version
- p4version [version-number]
- select a p4 version, and print full path for that version to standard out.
- options: -h this help
- -l list all available versions
- ";
- }
-
-
- my $version;
-
- getopts('hl', \%opts) or usage;
-
- usage if $opts{h};
- if( $opts{l} ) {
- my @versions = find_versions;
- print join " ", map( "$dir/$_", @versions ), "\n";
- exit 0;
- }
- elsif( @ARGV == 1 ) {
- $version = shift;
-
- die "p4 version directory $dir/$version not found\n"
- unless -d "$dir/$version"
- }
- else {
- # determine what versions are available to select
- # (both p4 and p4d must be present)
- my $ver_hash;
-
- my @versions = find_versions;
- die "no p4 versions found\n" unless @versions;
-
- #select version, or exit
- $version = dumb_menu @versions;
-
- }
-
-
- print "$dir/$version\n";
# |
Change |
User |
Description |
Committed |
|
#1
|
6118 |
Dimitry Andric |
Integ from //public/revml to //guest/dimitry_andric/revml/main. |
17 years ago
|
|
//guest/perforce_software/revml/p4version |
#1
|
3062 |
John Fetkovich |
Added capability to test all p4 versions |
22 years ago
|
|