diff options
Diffstat (limited to 'Tools/scripts/ftpmirror.py')
-rwxr-xr-x | Tools/scripts/ftpmirror.py | 106 |
1 files changed, 53 insertions, 53 deletions
diff --git a/Tools/scripts/ftpmirror.py b/Tools/scripts/ftpmirror.py index 7318b37..dd941a5 100755 --- a/Tools/scripts/ftpmirror.py +++ b/Tools/scripts/ftpmirror.py @@ -29,8 +29,8 @@ from fnmatch import fnmatch # Print usage message and exit def usage(*args): sys.stdout = sys.stderr - for msg in args: print msg - print __doc__ + for msg in args: print(msg) + print(__doc__) sys.exit(2) verbose = 1 # 0 for -q, 2 for -v @@ -82,22 +82,22 @@ def main(): if args[3:]: usage('too many arguments') # f = ftplib.FTP() - if verbose: print "Connecting to '%s%s'..." % (host, - (port and ":%d"%port or "")) + if verbose: print("Connecting to '%s%s'..." % (host, + (port and ":%d"%port or ""))) f.connect(host,port) if not nologin: if verbose: - print 'Logging in as %r...' % (login or 'anonymous') + print('Logging in as %r...' % (login or 'anonymous')) f.login(login, passwd, account) - if verbose: print 'OK.' + if verbose: print('OK.') pwd = f.pwd() - if verbose > 1: print 'PWD =', repr(pwd) + if verbose > 1: print('PWD =', repr(pwd)) if remotedir: - if verbose > 1: print 'cwd(%s)' % repr(remotedir) + if verbose > 1: print('cwd(%s)' % repr(remotedir)) f.cwd(remotedir) - if verbose > 1: print 'OK.' + if verbose > 1: print('OK.') pwd = f.pwd() - if verbose > 1: print 'PWD =', repr(pwd) + if verbose > 1: print('PWD =', repr(pwd)) # mirrorsubdir(f, localdir) @@ -105,11 +105,11 @@ def main(): def mirrorsubdir(f, localdir): pwd = f.pwd() if localdir and not os.path.isdir(localdir): - if verbose: print 'Creating local directory', repr(localdir) + if verbose: print('Creating local directory', repr(localdir)) try: makedir(localdir) except os.error as msg: - print "Failed to establish local directory", repr(localdir) + print("Failed to establish local directory", repr(localdir)) return infofilename = os.path.join(localdir, '.mirrorinfo') try: @@ -119,15 +119,15 @@ def mirrorsubdir(f, localdir): try: info = eval(text) except (SyntaxError, NameError): - print 'Bad mirror info in', repr(infofilename) + print('Bad mirror info in', repr(infofilename)) info = {} subdirs = [] listing = [] - if verbose: print 'Listing remote directory %r...' % (pwd,) + if verbose: print('Listing remote directory %r...' % (pwd,)) f.retrlines('LIST', listing.append) filesfound = [] for line in listing: - if verbose > 1: print '-->', repr(line) + if verbose > 1: print('-->', repr(line)) if mac: # Mac listing has just filenames; # trailing / means subdirectory @@ -141,14 +141,14 @@ def mirrorsubdir(f, localdir): # Parse, assuming a UNIX listing words = line.split(None, 8) if len(words) < 6: - if verbose > 1: print 'Skipping short line' + if verbose > 1: print('Skipping short line') continue filename = words[-1].lstrip() i = filename.find(" -> ") if i >= 0: # words[0] had better start with 'l'... if verbose > 1: - print 'Found symbolic link %r' % (filename,) + print('Found symbolic link %r' % (filename,)) linkto = filename[i+4:] filename = filename[:i] infostuff = words[-5:-1] @@ -157,21 +157,21 @@ def mirrorsubdir(f, localdir): for pat in skippats: if fnmatch(filename, pat): if verbose > 1: - print 'Skip pattern', repr(pat), - print 'matches', repr(filename) + print('Skip pattern', repr(pat), end=' ') + print('matches', repr(filename)) skip = 1 break if skip: continue if mode[0] == 'd': if verbose > 1: - print 'Remembering subdirectory', repr(filename) + print('Remembering subdirectory', repr(filename)) subdirs.append(filename) continue filesfound.append(filename) if info.has_key(filename) and info[filename] == infostuff: if verbose > 1: - print 'Already have this version of',repr(filename) + print('Already have this version of',repr(filename)) continue fullname = os.path.join(localdir, filename) tempname = os.path.join(localdir, '@'+filename) @@ -187,20 +187,20 @@ def mirrorsubdir(f, localdir): pass if mode[0] == 'l': if verbose: - print "Creating symlink %r -> %r" % (filename, linkto) + print("Creating symlink %r -> %r" % (filename, linkto)) try: os.symlink(linkto, tempname) except IOError as msg: - print "Can't create %r: %s" % (tempname, msg) + print("Can't create %r: %s" % (tempname, msg)) continue else: try: fp = open(tempname, 'wb') except IOError as msg: - print "Can't create %r: %s" % (tempname, msg) + print("Can't create %r: %s" % (tempname, msg)) continue if verbose: - print 'Retrieving %r from %r as %r...' % (filename, pwd, fullname) + print('Retrieving %r from %r as %r...' % (filename, pwd, fullname)) if verbose: fp1 = LoggingFile(fp, 1024, sys.stdout) else: @@ -210,7 +210,7 @@ def mirrorsubdir(f, localdir): f.retrbinary('RETR ' + filename, fp1.write, 8*1024) except ftplib.error_perm as msg: - print msg + print(msg) t1 = time.time() bytes = fp.tell() fp.close() @@ -223,29 +223,29 @@ def mirrorsubdir(f, localdir): try: os.rename(tempname, fullname) except os.error as msg: - print "Can't rename %r to %r: %s" % (tempname, fullname, msg) + print("Can't rename %r to %r: %s" % (tempname, fullname, msg)) continue info[filename] = infostuff writedict(info, infofilename) if verbose and mode[0] != 'l': dt = t1 - t0 kbytes = bytes / 1024.0 - print int(round(kbytes)), - print 'Kbytes in', - print int(round(dt)), - print 'seconds', + print(int(round(kbytes)), end=' ') + print('Kbytes in', end=' ') + print(int(round(dt)), end=' ') + print('seconds', end=' ') if t1 > t0: - print '(~%d Kbytes/sec)' % \ - int(round(kbytes/dt),) - print + print('(~%d Kbytes/sec)' % \ + int(round(kbytes/dt),)) + print() # # Remove files from info that are no longer remote deletions = 0 for filename in info.keys(): if filename not in filesfound: if verbose: - print "Removing obsolete info entry for", - print repr(filename), "in", repr(localdir or ".") + print("Removing obsolete info entry for", end=' ') + print(repr(filename), "in", repr(localdir or ".")) del info[filename] deletions = deletions + 1 if deletions: @@ -264,8 +264,8 @@ def mirrorsubdir(f, localdir): for pat in skippats: if fnmatch(name, pat): if verbose > 1: - print 'Skip pattern', repr(pat), - print 'matches', repr(name) + print('Skip pattern', repr(pat), end=' ') + print('matches', repr(name)) skip = 1 break if skip: @@ -273,10 +273,10 @@ def mirrorsubdir(f, localdir): fullname = os.path.join(localdir, name) if not rmok: if verbose: - print 'Local file', repr(fullname), - print 'is no longer pertinent' + print('Local file', repr(fullname), end=' ') + print('is no longer pertinent') continue - if verbose: print 'Removing local file/dir', repr(fullname) + if verbose: print('Removing local file/dir', repr(fullname)) remove(fullname) # # Recursively mirror subdirectories @@ -284,28 +284,28 @@ def mirrorsubdir(f, localdir): if interactive: doit = askabout('subdirectory', subdir, pwd) if not doit: continue - if verbose: print 'Processing subdirectory', repr(subdir) + if verbose: print('Processing subdirectory', repr(subdir)) localsubdir = os.path.join(localdir, subdir) pwd = f.pwd() if verbose > 1: - print 'Remote directory now:', repr(pwd) - print 'Remote cwd', repr(subdir) + print('Remote directory now:', repr(pwd)) + print('Remote cwd', repr(subdir)) try: f.cwd(subdir) except ftplib.error_perm as msg: - print "Can't chdir to", repr(subdir), ":", repr(msg) + print("Can't chdir to", repr(subdir), ":", repr(msg)) else: - if verbose: print 'Mirroring as', repr(localsubdir) + if verbose: print('Mirroring as', repr(localsubdir)) mirrorsubdir(f, localsubdir) - if verbose > 1: print 'Remote cwd ..' + if verbose > 1: print('Remote cwd ..') f.cwd('..') newpwd = f.pwd() if newpwd != pwd: - print 'Ended up in wrong directory after cd + cd ..' - print 'Giving up now.' + print('Ended up in wrong directory after cd + cd ..') + print('Giving up now.') break else: - if verbose > 1: print 'OK.' + if verbose > 1: print('OK.') # Helper to remove a file or directory tree def remove(fullname): @@ -323,13 +323,13 @@ def remove(fullname): try: os.rmdir(fullname) except os.error as msg: - print "Can't remove local directory %r: %s" % (fullname, msg) + print("Can't remove local directory %r: %s" % (fullname, msg)) return 0 else: try: os.unlink(fullname) except os.error as msg: - print "Can't remove local file %r: %s" % (fullname, msg) + print("Can't remove local file %r: %s" % (fullname, msg)) return 0 return 1 @@ -366,7 +366,7 @@ def askabout(filetype, filename, pwd): return 1 if reply in ['', 'n', 'no', 'nop', 'nope']: return 0 - print 'Please answer yes or no.' + print('Please answer yes or no.') # Create a directory if it doesn't exist. Recursively create the # parent directory as well if needed. |