ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SCRAM/src/URL/URL_cvs.pm
Revision: 1.8
Committed: Fri Dec 17 08:46:08 1999 UTC (25 years, 4 months ago) by williamc
Content type: text/plain
Branch: MAIN
Changes since 1.7: +5 -2 lines
Log Message:
Working Unit

File Contents

# User Rev Content
1 williamc 1.1 #
2     # standard url interface for cvs
3     #
4     #Interface
5     #-------------
6     # new() :
7 williamc 1.5 # get(url,$dirname) :
8 williamc 1.1
9 williamc 1.4 package URL::URL_cvs;
10 williamc 1.1 require 5.001;
11     use Utilities::CVSmodule;
12 williamc 1.4 use URL::URL_base;
13 williamc 1.1 use Carp;
14 williamc 1.4 @ISA = qw(URL::URL_base);
15 williamc 1.1
16     sub init {
17     my $self=shift;
18     $self->{cvsco}="co";
19     }
20    
21     sub setbase {
22     my $self=shift;
23 williamc 1.7 my $base=shift;
24 williamc 1.1 my $varhash=shift;
25    
26     my $auth=$$varhash{'auth'};
27    
28     # a new cvs object
29     $self->{cvsobject}=CVSmodule->new();
30     $self->{cvsobject}->set_base($base);
31     $self->{cvsobject}->set_auth($auth);
32     if ( exists $$varhash{'user'} ) {
33     $self->{cvsobject}->set_user($$varhash{'user'});
34     }
35     if ( exists $$varhash{'passkey'} ) {
36     $self->{cvsobject}->set_passkey($$varhash{'passkey'});
37     }
38     if ( exists $$varhash{'method'} ) {
39     $self->{cvsco}=$$varhash{'method'};
40     }
41     # Alternative dir name to co to
42     if ( exists $$varhash{'name'} ) {
43     $self->{dirname}=$$varhash{'name'};
44     }
45     }
46    
47     sub get {
48     my $self=shift;
49     my $url=shift;
50 williamc 1.6 my $location=shift;
51 williamc 1.1
52 williamc 1.7 my $dirname;
53 williamc 1.6 use File::Basename;
54 williamc 1.7 #($dirname=$location)=~s/.*\/(.*)/$1/;
55     #my $dir=dirname($location);
56     $dirname=$url->file();
57     $dir=$location;
58 williamc 1.8 use Utilities::AddDir;
59     AddDir::adddir($dir);
60 williamc 1.6
61     my @cvscmd=($self->{cvsco});
62 williamc 1.7 $self->setbase($url->base(),$url->vars());
63     my $version=$url->param('version');
64 williamc 1.6 my $rv="";
65 williamc 1.1
66 williamc 1.7 if ( $version && ($version ne "") ) {
67 williamc 1.6 push @cvscmd, ("-r", "$version");
68 williamc 1.1 }
69 williamc 1.8 # push @cvscmd, ("-d", $dirname);
70 williamc 1.1 #
71     # Check to see we have a server and if so attempt the checkout
72     #
73     if ( ! defined $self->{cvsobject} ) {
74     print "urlhandler error: undefined cvs server for $module\n";
75     }
76     else {
77 williamc 1.5 use Cwd;
78     my $thisdir=cwd();
79     chdir $dir;
80 williamc 1.8 #print "Entering $dir to @cvscmd ".$url->file()."\n";
81 williamc 1.7 $self->{cvsobject}->invokecvs(@cvscmd, $url->file());
82 williamc 1.5 chdir $thisdir;
83 williamc 1.8 if ( -e $location."/".$url->file() ) { $rv=$location."/".$url->file() } ;
84 williamc 1.1 }
85 williamc 1.3 return $rv;
86 williamc 1.1 }