122 if m: |
122 if m: |
123 conntype = "pserver" |
123 conntype = "pserver" |
124 user, passw, serv, port, root = m.groups() |
124 user, passw, serv, port, root = m.groups() |
125 if not user: |
125 if not user: |
126 user = "anonymous" |
126 user = "anonymous" |
127 rr = ":pserver:" + user + "@" + serv + ":" + root |
127 if not port: |
128 if port: |
128 port = 2401 |
129 rr2, port = "-", int(port) |
|
130 else: |
129 else: |
131 rr2, port = rr, 2401 |
130 port = int(port) |
132 rr += str(port) |
131 format0 = ":pserver:%s@%s:%s" % (user, serv, root) |
|
132 format1 = ":pserver:%s@%s:%d%s" % (user, serv, port, root) |
133 |
133 |
134 if not passw: |
134 if not passw: |
135 passw = "A" |
135 passw = "A" |
136 pf = open(os.path.join(os.environ["HOME"], ".cvspass")) |
136 pf = open(os.path.join(os.environ["HOME"], ".cvspass")) |
137 for l in pf: |
137 for line in pf.read().splitlines(): |
138 # :pserver:cvs@mea.tmt.tele.fi:/cvsroot/zmailer Ah<Z |
138 part1, part2 = line.split(' ', 1) |
139 m = re.match(r'(/\d+\s+/)?(.*)', l) |
139 if part1 == '/1': |
140 l = m.group(2) |
140 # /1 :pserver:user@example.com:2401/cvsroot/foo Ah<Z |
141 w, p = l.split(' ', 1) |
141 part1, part2 = part2.split(' ', 1) |
142 if w in [rr, rr2]: |
142 format = format1 |
143 passw = p |
143 else: |
|
144 # :pserver:user@example.com:/cvsroot/foo Ah<Z |
|
145 format = format0 |
|
146 if part1 == format: |
|
147 passw = part2 |
144 break |
148 break |
145 pf.close() |
149 pf.close() |
146 |
150 |
147 sck = socket.socket() |
151 sck = socket.socket() |
148 sck.connect((serv, port)) |
152 sck.connect((serv, port)) |