ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SCRAM/src/URL/URL_cvs.pm
Revision: 1.3
Committed: Wed Aug 25 15:43:18 1999 UTC (25 years, 8 months ago) by williamc
Content type: text/plain
Branch: MAIN
Changes since 1.2: +9 -8 lines
Log Message:
Return filename/dir as appropriate from get calls

File Contents

# User Rev Content
1 williamc 1.1 #
2     # standard url interface for cvs
3     #
4     #Interface
5     #-------------
6     # new() :
7     # setbase($type) :
8     # unsetbase() :
9 williamc 1.2 # get(url) :
10 williamc 1.1
11     package URL_cvs;
12     require 5.001;
13     use Utilities::CVSmodule;
14     use Carp;
15 williamc 1.3 @ISA = qw (URL_base);
16 williamc 1.1
17     sub init {
18     my $self=shift;
19     $self->{cvsco}="co";
20 williamc 1.3 $self->{dirname}="";
21 williamc 1.1 }
22    
23     sub setbase {
24     my $self=shift;
25     my $varhash=shift;
26    
27     my $base=$$varhash{'base'};
28     my $auth=$$varhash{'auth'};
29    
30     # a new cvs object
31     $self->{cvsobject}=CVSmodule->new();
32     $self->{cvsobject}->set_base($base);
33     $self->{cvsobject}->set_auth($auth);
34     if ( exists $$varhash{'user'} ) {
35     $self->{cvsobject}->set_user($$varhash{'user'});
36     }
37     if ( exists $$varhash{'passkey'} ) {
38     $self->{cvsobject}->set_passkey($$varhash{'passkey'});
39     }
40     if ( exists $$varhash{'method'} ) {
41     $self->{cvsco}=$$varhash{'method'};
42     }
43     # Alternative dir name to co to
44     if ( exists $$varhash{'name'} ) {
45     $self->{dirname}=$$varhash{'name'};
46     }
47     }
48    
49     sub unsetbase {
50     my $self=shift;
51     delete $self->{cvsobject};
52     }
53    
54     #
55     # url module?version
56     #
57     sub get {
58     my $self=shift;
59     my $url=shift;
60    
61     my $cvscmd;
62     my $module="";
63     my $version="";
64 williamc 1.3 my $rv;
65 williamc 1.1
66     # Split up our url into its components
67     if ( $url=~/\?/ ) {
68     ($module, $version)= split /\?/, $url;
69     }
70     else {
71     $module=$url;
72     }
73    
74     if ( $version ne "" ) {
75     $cvscmd=$self->{cvsco}." -r $version";
76     }
77     else {
78     $cvscmd=$self->{cvsco};
79     }
80     if ( $self->{dirname} ne "" ) {
81     $cvscmd=$cvscms." -d ".$self->{dirname};
82 williamc 1.3 $rv=$self->{dirname};
83     }
84     else {
85     $rv=$self->getfilefrompath($url);
86 williamc 1.1 }
87    
88     #
89     # Check to see we have a server and if so attempt the checkout
90     #
91     if ( ! defined $self->{cvsobject} ) {
92     print "urlhandler error: undefined cvs server for $module\n";
93 williamc 1.3 $rv="";
94 williamc 1.1 }
95     else {
96     $self->{cvsobject}->invokecvs($cvscmd, $module);
97     }
98 williamc 1.3 return $rv;
99 williamc 1.1 }