diff -Nru -w dput-0.9.6.2ubuntu1/debian/changelog dput-0.9.6.2ubuntu1.1/debian/changelog --- dput-0.9.6.2ubuntu1/debian/changelog 2011-05-06 08:39:51.000000000 -0400 +++ dput-0.9.6.2ubuntu1.1/debian/changelog 2012-12-14 13:07:55.000000000 -0500 @@ -1,3 +1,9 @@ +dput (0.9.6.2ubuntu1.1) precise-proposed; urgency=low + + * Add support for a progress indicator to the sftp method (LP: #633109) + + -- Adam Stokes Fri, 14 Dec 2012 13:07:02 -0500 + dput (0.9.6.2ubuntu1) oneiric; urgency=low * Merge from debian unstable (LP: #775587), remaining changes: diff -Nru -w dput-0.9.6.2ubuntu1/debian/patches/series dput-0.9.6.2ubuntu1.1/debian/patches/series --- dput-0.9.6.2ubuntu1/debian/patches/series 1969-12-31 19:00:00.000000000 -0500 +++ dput-0.9.6.2ubuntu1.1/debian/patches/series 2012-12-14 13:05:35.000000000 -0500 @@ -0,0 +1 @@ +sftp_show_progress.diff diff -Nru -w dput-0.9.6.2ubuntu1/debian/patches/sftp_show_progress.diff dput-0.9.6.2ubuntu1.1/debian/patches/sftp_show_progress.diff --- dput-0.9.6.2ubuntu1/debian/patches/sftp_show_progress.diff 1969-12-31 19:00:00.000000000 -0500 +++ dput-0.9.6.2ubuntu1.1/debian/patches/sftp_show_progress.diff 2012-12-14 13:05:59.000000000 -0500 @@ -0,0 +1,64 @@ +--- a/sftp.py ++++ b/sftp.py +@@ -2,10 +2,10 @@ + # + # @author Cody A.W. Somerville + # @company Canonical Ltd. +-# @date 07 November 2008 ++# @date 07 November 2008 + # + +-import os, sys ++import os, sys, dputhelper + + def upload(fqdn, login, incoming, files, debug, compress, progress=0): + try: +@@ -13,26 +13,41 @@ + except Exception, e: + print "E: bzrlib must be installed to use sftp transport." + sys.exit(1) +- ++ + if not login or login == '*': + login = os.getenv("USER") +- ++ + if not incoming.endswith("/"): + incoming = "%s/" % incoming +- ++ + try: + t = bzrlib.transport.get_transport("sftp://%s@%s/%s" % (login, fqdn, incoming)) + except Exception, e: +- print "%s\nE: Error connecting to remote host." % e ++ print "%s\nE: Error connecting to remote host." % e + sys.exit(1) +- ++ + for f in files: + baseFilename = f.split("/")[len(f.split("/"))-1] + sys.stdout.write(" %s: " % baseFilename) + sys.stdout.flush() + try: +- t.put_file(baseFilename, file(f, 'rb')) ++ fileobj = open(f, 'rb') ++ ++ if progress: ++ try: ++ size = os.stat(f).st_size ++ except: ++ size = -1 ++ if debug: ++ print "D: Determining size of file '%s' failed" % f ++ ++ fileobj = dputhelper.FileWithProgress(fileobj, ptype=progress, ++ progressf=sys.stdout, ++ size=size) ++ ++ t.put_file(baseFilename, fileobj) ++ fileobj.close() + except Exception, e: + print "\n%s\nE: Error uploading file." % e + sys.exit(1) +- print "done." ++ print "done." diff -Nru -w dput-0.9.6.2ubuntu1/.pc/applied-patches dput-0.9.6.2ubuntu1.1/.pc/applied-patches --- dput-0.9.6.2ubuntu1/.pc/applied-patches 1969-12-31 19:00:00.000000000 -0500 +++ dput-0.9.6.2ubuntu1.1/.pc/applied-patches 2012-12-14 13:05:35.000000000 -0500 @@ -0,0 +1 @@ +sftp_show_progress.diff diff -Nru -w dput-0.9.6.2ubuntu1/.pc/.quilt_patches dput-0.9.6.2ubuntu1.1/.pc/.quilt_patches --- dput-0.9.6.2ubuntu1/.pc/.quilt_patches 1969-12-31 19:00:00.000000000 -0500 +++ dput-0.9.6.2ubuntu1.1/.pc/.quilt_patches 2012-12-14 13:05:35.000000000 -0500 @@ -0,0 +1 @@ +debian/patches diff -Nru -w dput-0.9.6.2ubuntu1/.pc/.quilt_series dput-0.9.6.2ubuntu1.1/.pc/.quilt_series --- dput-0.9.6.2ubuntu1/.pc/.quilt_series 1969-12-31 19:00:00.000000000 -0500 +++ dput-0.9.6.2ubuntu1.1/.pc/.quilt_series 2012-12-14 13:05:35.000000000 -0500 @@ -0,0 +1 @@ +series diff -Nru -w dput-0.9.6.2ubuntu1/.pc/sftp_show_progress.diff/sftp.py dput-0.9.6.2ubuntu1.1/.pc/sftp_show_progress.diff/sftp.py --- dput-0.9.6.2ubuntu1/.pc/sftp_show_progress.diff/sftp.py 1969-12-31 19:00:00.000000000 -0500 +++ dput-0.9.6.2ubuntu1.1/.pc/sftp_show_progress.diff/sftp.py 2011-05-06 08:39:51.000000000 -0400 @@ -0,0 +1,38 @@ +# sftp.py - dput method for sftp transport +# +# @author Cody A.W. Somerville +# @company Canonical Ltd. +# @date 07 November 2008 +# + +import os, sys + +def upload(fqdn, login, incoming, files, debug, compress, progress=0): + try: + import bzrlib.transport + except Exception, e: + print "E: bzrlib must be installed to use sftp transport." + sys.exit(1) + + if not login or login == '*': + login = os.getenv("USER") + + if not incoming.endswith("/"): + incoming = "%s/" % incoming + + try: + t = bzrlib.transport.get_transport("sftp://%s@%s/%s" % (login, fqdn, incoming)) + except Exception, e: + print "%s\nE: Error connecting to remote host." % e + sys.exit(1) + + for f in files: + baseFilename = f.split("/")[len(f.split("/"))-1] + sys.stdout.write(" %s: " % baseFilename) + sys.stdout.flush() + try: + t.put_file(baseFilename, file(f, 'rb')) + except Exception, e: + print "\n%s\nE: Error uploading file." % e + sys.exit(1) + print "done." diff -Nru -w dput-0.9.6.2ubuntu1/.pc/.version dput-0.9.6.2ubuntu1.1/.pc/.version --- dput-0.9.6.2ubuntu1/.pc/.version 1969-12-31 19:00:00.000000000 -0500 +++ dput-0.9.6.2ubuntu1.1/.pc/.version 2012-12-14 13:05:35.000000000 -0500 @@ -0,0 +1 @@ +2 diff -Nru -w dput-0.9.6.2ubuntu1/sftp.py dput-0.9.6.2ubuntu1.1/sftp.py --- dput-0.9.6.2ubuntu1/sftp.py 2011-05-06 08:39:51.000000000 -0400 +++ dput-0.9.6.2ubuntu1.1/sftp.py 2012-12-14 13:05:55.000000000 -0500 @@ -5,7 +5,7 @@ # @date 07 November 2008 # -import os, sys +import os, sys, dputhelper def upload(fqdn, login, incoming, files, debug, compress, progress=0): try: @@ -31,7 +31,22 @@ sys.stdout.write(" %s: " % baseFilename) sys.stdout.flush() try: - t.put_file(baseFilename, file(f, 'rb')) + fileobj = open(f, 'rb') + + if progress: + try: + size = os.stat(f).st_size + except: + size = -1 + if debug: + print "D: Determining size of file '%s' failed" % f + + fileobj = dputhelper.FileWithProgress(fileobj, ptype=progress, + progressf=sys.stdout, + size=size) + + t.put_file(baseFilename, fileobj) + fileobj.close() except Exception, e: print "\n%s\nE: Error uploading file." % e sys.exit(1)