You are viewing a plain text version of this content. The canonical link for it is here.
Posted to alexandria-dev@jakarta.apache.org by ru...@apache.org on 2001/10/07 17:54:47 UTC
cvs commit: jakarta-alexandria/proposal/gump/perl cvslogin.pl
rubys 01/10/07 08:54:47
Modified: proposal/gump gen.bat gen.sh
Added: proposal/gump/perl cvslogin.pl
Log:
Automatic login to each :pserver: repository. Not sure where the original
source of the encoding algorithm came from, I got it from Jon Stevens.
Revision Changes Path
1.10 +3 -0 jakarta-alexandria/proposal/gump/gen.bat
Index: gen.bat
===================================================================
RCS file: /home/cvs/jakarta-alexandria/proposal/gump/gen.bat,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- gen.bat 2001/09/30 14:46:58 1.9
+++ gen.bat 2001/10/07 15:54:47 1.10
@@ -97,6 +97,9 @@
puball %SOURCE%
cd ..
+REM Automatic login to each :pserver: cvsroot
+perl perl\cvslogin.pl work\merge.xml
+
goto eof
:fail
echo *** FAILED ***
1.14 +5 -0 jakarta-alexandria/proposal/gump/gen.sh
Index: gen.sh
===================================================================
RCS file: /home/cvs/jakarta-alexandria/proposal/gump/gen.sh,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- gen.sh 2001/09/30 14:46:58 1.13
+++ gen.sh 2001/10/07 15:54:47 1.14
@@ -120,7 +120,12 @@
cd work
chmod +x *.sh
sh puball.sh $SOURCE
+ cd ..
fi
+
+# Automatic login to each :pserver: cvsroot
+test -n "$FAIL" || \
+perl perl/cvslogin.pl work/merge.xml
test -z "$FAIL" || echo "*** FAILED ***"
1.1 jakarta-alexandria/proposal/gump/perl/cvslogin.pl
Index: cvslogin.pl
===================================================================
#!/user/bin/perl
use strict;
use XML::Parser;
#
# input arguments, with defaults
#
my $input = (shift or "work/merge.xml");
my $cvspass = (shift or "$ENV{HOME}/.cvspass");
#
# encoding algorithm used for cvs passwords
#
sub scramble($) {
my @shifts = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
114,120, 53, 79, 96,109, 72,108, 70, 64, 76, 67,116, 74, 68, 87,
111, 52, 75,119, 49, 34, 82, 81, 95, 65,112, 86,118,110,122,105,
41, 57, 83, 43, 46,102, 40, 89, 38,103, 45, 50, 42,123, 91, 35,
125, 55, 54, 66,124,126, 59, 47, 92, 71,115, 78, 88,107,106, 56,
36,121,117,104,101,100, 69, 73, 99, 63, 94, 93, 39, 37, 61, 48,
58,113, 32, 90, 44, 98, 60, 51, 33, 97, 62, 77, 84, 80, 85,223,
225,216,187,166,229,189,222,188,141,249,148,200,184,136,248,190,
199,170,181,204,138,232,218,183,255,234,220,247,213,203,226,193,
174,172,228,252,217,201,131,230,197,211,145,238,161,179,160,212,
207,221,254,173,202,146,224,151,140,196,205,130,135,133,143,246,
192,159,244,239,185,168,215,144,139,165,180,157,147,186,214,176,
227,231,219,169,175,156,206,198,129,164,150,210,154,177,134,127,
182,128,158,208,162,132,167,209,149,241,153,251,237,236,171,195,
243,233,253,240,194,250,191,155,142,137,245,235,163,242,178,152);
return 'A' . pack('C*', map {$shifts[$_]} unpack('C*', shift));
}
#
# Read the current ~/.cvspass file.
#
my %password;
open CVSPASS,"<$cvspass" or die "Couldn't open $cvspass:\n$!";
while (<CVSPASS>) {
$password{$1} = $2 if /(.*?) (.*)\n/;
}
close CVSPASS;
#
# Parse the file specified by the first argument, looking for cvs elements.
#
my $updated = 0;
my $parser = new XML::Parser(Style => 'Subs');
$parser->parsefile($input);
#
# for each cvs element that is of type :pserver:, and does not already have
# an entry in the %password hashtable, scramble the password and add it.
#
sub cvs {
my $expat = shift;
my $tag = shift;
my %attr = @_;
my $cvsroot = $attr{cvsroot};
return unless $cvsroot =~ /^:pserver:/;
return if $password{$cvsroot};
$password{$cvsroot} = scramble($attr{password});
print "login $cvsroot\n";
$updated = 1;
}
#
# if any updates occurred, output the updated .cvsrc file
#
if ($updated) {
rename $cvspass, "$cvspass.bak";
open CVSPASS,">$cvspass" or die $!;
foreach my $cvsroot (sort keys %password) {
print CVSPASS "$cvsroot $password{$cvsroot}\n";
}
close CVSPASS;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: alexandria-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: alexandria-dev-help@jakarta.apache.org
Re: cvs commit: jakarta-alexandria/proposal/gump/perl cvslogin.pl
Posted by Jon Stevens <jo...@latchkey.com>.
on 10/7/01 8:54 AM, "rubys@apache.org" <ru...@apache.org> wrote:
> Automatic login to each :pserver: repository. Not sure where the original
> source of the encoding algorithm came from, I got it from Jon Stevens.
>
Karl fogel gave it to me.
-jon
---------------------------------------------------------------------
To unsubscribe, e-mail: alexandria-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: alexandria-dev-help@jakarta.apache.org