ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SCRAM/src/Utilities/CVSmodule.pm
(Generate patch)

Comparing COMP/SCRAM/src/Utilities/CVSmodule.pm (file contents):
Revision 1.1 by williamc, Fri Oct 22 10:05:22 1999 UTC vs.
Revision 1.11 by sashby, Wed Feb 15 17:14:18 2006 UTC

# Line 1 | Line 1
1 < #
2 < #
3 < # Interface
4 < # ---------
5 < # new()          : A new cvs modules
6 < # set_base(base) : Set a base from which to read (i.e server name/path)
7 < # set_auth(type) : Set authentication method e.g pserver, kserver, ext etc.
8 < # set_user(username) : set a username for authentication if required
9 < # set_passbase(file) : Override the default CVS_PASSFILE for pserver client
10 < # set_passkey(encrypted) : For pserver method - set a password
11 < #                          (encrypted)
12 < # invokecvs(@cmds)  : invoke a cvs command supplied in @cmds
13 < #                      
14 < package CVSmodule;
15 < require 5.001;
1 > =head1 NAME
2 >
3 > Utilities::CVSmodule - A wrapper around CVS.
4 >
5 > =head1 SYNOPSIS
6 >
7 >        my $obj = Utilities::CVSmodule->new();
8 >
9 > =head1 DESCRIPTION
10 >
11 > Configure the CVSmodule object to access a CVS repository and then
12 > invokecvs() commands as required.
13 >
14 > =head1 METHODS
15 >
16 > =over
17 >
18 > =item C<new()>
19 >
20 > A new cvs modules object.
21 >
22 > =item C<set_base(base)>
23 >
24 > Set a base from which to read (i.e server name/path).
25 >
26 > =item C<set_auth(type)>
27 >
28 > Set authentication method e.g pserver, kserver, ext etc.
29 >
30 > =item C<set_user(username)>
31 >
32 > Set a username for authentication if required.
33 >
34 > =item C<set_passbase(file)>
35 >
36 > Override the default CVS_PASSFILE for pserver client.
37 >
38 > =item C<set_passkey(encrypted)>
39 >
40 > For pserver method - set a password (encrypted).
41 >
42 > =item C<invokecvs(@cmds)>
43 >
44 > Invoke a cvs command supplied in @cmds.
45 >
46 > =item C<repository()>
47 >
48 > Return a string to indicate the repository.
49 >
50 > =cut
51 >
52 > =back
53 >
54 > =head1 AUTHOR
55 >
56 > Originally written by Christopher Williams.
57 >
58 > =head1 MAINTAINER
59 >
60 > Shaun ASHBY
61 >
62 > =cut
63 >
64 > package Utilities::CVSmodule;
65   require Exporter;
66 + use Utilities::AddDir;
67 + require 5.004;
68   @ISA= qw(Exporter);
69  
70   sub new {
71          my $class=shift;
72 <        $self={};
72 >        my $self={};
73 >        bless $self, $class;
74          $self->{myenv}={};
75          $self->{cvs}='cvs';
24 #       $self->{cvs}='/usr/local/bin/cvs';
76          # Reset All variables
77          $self->{auth}="";
78          $self->{passkey}="";
79          $self->{user}="";
80          $self->{base}="";
81 <        $self->{passbase}=$ENV{HOME}."/.cvspass";
31 <        bless $self, $class;
81 >        $self->set_passbase("/tmp/".$>."CVSmodule/.cvspass");
82          return $self;
83   }
84  
85   sub set_passbase {
86          my $self=shift;
87 <        my $dir=shift;
87 >        my $file=shift;
88  
89 <        $self->{passbase}=$dir;
90 <        $self->env("CVS_PASSFILE", $dir);
89 >        my $dir;
90 >        ($dir=$file)=~s/(.*)\/.*/$1/;
91 >        AddDir::adddir($dir);
92 >        $self->{passbase}=$file;
93 >        $self->env("CVS_PASSFILE", $file);
94   }
95  
96   sub set_passkey {
# Line 47 | Line 100 | sub set_passkey {
100          my $file=$self->{passbase};
101          SCRAMUtils::updatelookup($file,
102                  $self->{cvsroot}." ", $self->{passkey});
103 < }
103 >        }
104  
105   sub set_base {
106          $self=shift;
# Line 70 | Line 123 | sub set_auth {
123          $self=shift;
124          $self->{auth}=shift;
125          $self->{auth}=~s/^\:*(.*)\:*/\:$1\:/;
126 +        
127          $self->_updatecvsroot();
128   }
129  
# Line 82 | Line 136 | sub env {
136   sub invokecvs {
137          $self=shift;
138          @cmds=@_;
139 <        #make sure weve got the right environment
139 >        # make sure weve got the right environment
140          foreach $key ( %{$self->{myenv}} ) {
141 <          $ENV{$key}=$self->{myenv}{$key}
141 >          $ENV{$key}=$self->{myenv}{$key};
142          }
143 <        #now perform the cvs command
144 <        #print ( join ' ', ( $self->{cvs}, "-d", $self->{cvsroot}, @cmds, "\n" ));
91 <        system( "$self->{cvs}" , "-d", "$self->{cvsroot}", @cmds );
143 >        # now perform the cvs command
144 >        return ( system( "$self->{cvs}" ,"-Q", "-d", "$self->{cvsroot}", @cmds ));
145   }
146  
147   sub _updatecvsroot {
148          my $self=shift;
149          $self->{cvsroot}=$self->{auth}.$self->{user}.$self->{base};
150   }
151 +
152 + sub cvsroot {
153 +        my $self=shift;
154 +        return $self->{cvsroot};
155 + }
156 +
157 + sub repository {
158 +        my $self=shift;
159 +        return $self->{base};
160 + }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines