X-Git-Url: https://arthur.barton.de/gitweb/?a=blobdiff_plain;f=cmd%2Fftp-cmd.py;h=f1e48bdbe0a7a3fb11058ce25f7b6eede4e48574;hb=1c94d08bfe63510418d8cdf23affc5d7350d70b2;hp=08462d9d4c94c46b503e085475a2a10f51dbdc0c;hpb=f0a4b3b6ef7d00e64b04dee51b8e15db71b693d3;p=bup.git diff --git a/cmd/ftp-cmd.py b/cmd/ftp-cmd.py index 08462d9..f1e48bd 100755 --- a/cmd/ftp-cmd.py +++ b/cmd/ftp-cmd.py @@ -9,6 +9,7 @@ from __future__ import absolute_import, print_function import sys, os, stat, fnmatch from bup import options, git, shquote, ls, vfs +from bup.io import byte_stream from bup.helpers import chunkyreader, handle_ctrl_c, log from bup.repo import LocalRepo @@ -19,13 +20,13 @@ class OptionError(Exception): pass -def do_ls(repo, args): +def do_ls(repo, args, out): try: opt = ls.opts_from_cmdline(args, onabort=OptionError) except OptionError as e: log('error: %s' % e) return - return ls.within_repo(repo, opt) + return ls.within_repo(repo, opt, out) def write_to_file(inf, outf): @@ -103,6 +104,8 @@ o = options.Options(optspec) git.check_repo_or_die() +sys.stdout.flush() +out = byte_stream(sys.stdout) repo = LocalRepo() pwd = vfs.resolve(repo, '/') rv = 0 @@ -134,7 +137,8 @@ for line in lines: try: if cmd == 'ls': # FIXME: respect pwd (perhaps via ls accepting resolve path/parent) - do_ls(repo, words[1:]) + sys.stdout.flush() # FIXME: remove when we finish py3 support + do_ls(repo, words[1:], out) elif cmd == 'cd': np = pwd for parm in words[1:]: