105 if m: |
105 if m: |
106 conntype = "pserver" |
106 conntype = "pserver" |
107 user, passw, serv, port, root = m.groups() |
107 user, passw, serv, port, root = m.groups() |
108 if not user: |
108 if not user: |
109 user = "anonymous" |
109 user = "anonymous" |
110 rr = ":pserver:" + user + "@" + serv + ":" + root |
110 if not port: |
111 if port: |
111 port = 2401 |
112 rr2, port = "-", int(port) |
|
113 else: |
112 else: |
114 rr2, port = rr, 2401 |
113 port = int(port) |
115 rr += str(port) |
114 format0 = ":pserver:%s@%s:%s" % (user, serv, root) |
|
115 format1 = ":pserver:%s@%s:%d%s" % (user, serv, port, root) |
116 |
116 |
117 if not passw: |
117 if not passw: |
118 passw = "A" |
118 passw = "A" |
119 pf = open(os.path.join(os.environ["HOME"], ".cvspass")) |
119 pf = open(os.path.join(os.environ["HOME"], ".cvspass")) |
120 for l in pf: |
120 for line in pf.read().splitlines(): |
121 # :pserver:cvs@mea.tmt.tele.fi:/cvsroot/zmailer Ah<Z |
121 part1, part2 = line.split(' ', 1) |
122 m = re.match(r'(/\d+\s+/)?(.*)', l) |
122 if part1 == '/1': |
123 l = m.group(2) |
123 # /1 :pserver:user@example.com:2401/cvsroot/foo Ah<Z |
124 w, p = l.split(' ', 1) |
124 part1, part2 = part2.split(' ', 1) |
125 if w in [rr, rr2]: |
125 format = format1 |
126 passw = p |
126 else: |
|
127 # :pserver:user@example.com:/cvsroot/foo Ah<Z |
|
128 format = format0 |
|
129 if part1 == format: |
|
130 passw = part2 |
127 break |
131 break |
128 pf.close() |
132 pf.close() |
129 |
133 |
130 sck = socket.socket() |
134 sck = socket.socket() |
131 sck.connect((serv, port)) |
135 sck.connect((serv, port)) |