]> granicus.if.org Git - python/commitdiff
Patch #430754: Makes ftpmirror.py .netrc aware
authorMartin v. Löwis <martin@v.loewis.de>
Thu, 7 Jun 2001 17:17:00 +0000 (17:17 +0000)
committerMartin v. Löwis <martin@v.loewis.de>
Thu, 7 Jun 2001 17:17:00 +0000 (17:17 +0000)
Tools/scripts/ftpmirror.py

index c894a7b0522f5250800c2ac7a13cc9e3e93e8ca9..38af9dc8b7b5f4f85b1598e2268e531ed519e007 100755 (executable)
@@ -11,7 +11,7 @@ usage: ftpmirror [-v] [-q] [-i] [-m] [-n] [-r] [-s pat]
 -m: macintosh server (NCSA telnet 2.4) (implies -n -s '*.o')
 -n: don't log in
 -r: remove local files/directories no longer pertinent
--l username [-p passwd [-a account]]: login info (default anonymous ftp)
+-l username [-p passwd [-a account]]: login info (default .netrc or anonymous)
 -s pat: skip files matching pattern
 hostname: remote host
 remotedir: remote directory (default initial)
@@ -24,6 +24,7 @@ import time
 import getopt
 import string
 import ftplib
+import netrc
 from fnmatch import fnmatch
 
 # Print usage message and exit
@@ -50,6 +51,14 @@ def main():
     login = ''
     passwd = ''
     account = ''
+    if not args: usage('hostname missing')
+    host = args[0]
+    try:
+        auth = netrc.netrc().authenticators(host)
+        if auth is not None:
+            login, account, passwd = auth
+    except (netrc.NetrcParseError, IOError):
+        pass
     for o, a in opts:
         if o == '-l': login = a
         if o == '-p': passwd = a
@@ -61,8 +70,6 @@ def main():
         if o == '-n': nologin = 1
         if o == '-r': rmok = 1
         if o == '-s': skippats.append(a)
-    if not args: usage('hostname missing')
-    host = args[0]
     remotedir = ''
     localdir = ''
     if args[1:]: