cmd_send: rearrange functions, no code changes
This commit is contained in:
parent
754cabbdd8
commit
35639dafed
|
@ -10,91 +10,6 @@ from ..twisted.transit import TransitSender
|
||||||
|
|
||||||
APPID = u"lothar.com/wormhole/text-or-file-xfer"
|
APPID = u"lothar.com/wormhole/text-or-file-xfer"
|
||||||
|
|
||||||
def handle_zero(args):
|
|
||||||
if args.zeromode:
|
|
||||||
assert not args.code
|
|
||||||
args.code = u"0-"
|
|
||||||
|
|
||||||
def build_other_command(args):
|
|
||||||
other_cmd = "wormhole receive"
|
|
||||||
if args.verify:
|
|
||||||
other_cmd = "wormhole --verify receive"
|
|
||||||
if args.zeromode:
|
|
||||||
other_cmd += " -0"
|
|
||||||
return other_cmd
|
|
||||||
|
|
||||||
def build_phase1_data(args):
|
|
||||||
phase1 = {}
|
|
||||||
|
|
||||||
text = args.text
|
|
||||||
if text == "-":
|
|
||||||
print(u"Reading text message from stdin..", file=args.stdout)
|
|
||||||
text = sys.stdin.read()
|
|
||||||
if not text and not args.what:
|
|
||||||
text = six.moves.input("Text to send: ")
|
|
||||||
|
|
||||||
if text is not None:
|
|
||||||
print(u"Sending text message (%d bytes)" % len(text), file=args.stdout)
|
|
||||||
phase1 = { "message": text }
|
|
||||||
fd_to_send = None
|
|
||||||
return phase1, fd_to_send
|
|
||||||
|
|
||||||
what = os.path.join(args.cwd, args.what)
|
|
||||||
what = what.rstrip(os.sep)
|
|
||||||
if not os.path.exists(what):
|
|
||||||
raise TransferError("Cannot send: no file/directory named '%s'" %
|
|
||||||
args.what)
|
|
||||||
basename = os.path.basename(what)
|
|
||||||
|
|
||||||
if os.path.isfile(what):
|
|
||||||
# we're sending a file
|
|
||||||
filesize = os.stat(what).st_size
|
|
||||||
phase1["file"] = {
|
|
||||||
"filename": basename,
|
|
||||||
"filesize": filesize,
|
|
||||||
}
|
|
||||||
print(u"Sending %d byte file named '%s'" % (filesize, basename),
|
|
||||||
file=args.stdout)
|
|
||||||
fd_to_send = open(what, "rb")
|
|
||||||
return phase1, fd_to_send
|
|
||||||
|
|
||||||
if os.path.isdir(what):
|
|
||||||
print(u"Building zipfile..", file=args.stdout)
|
|
||||||
# We're sending a directory. Create a zipfile in a tempdir and
|
|
||||||
# send that.
|
|
||||||
fd_to_send = tempfile.SpooledTemporaryFile()
|
|
||||||
# TODO: I think ZIP_DEFLATED means compressed.. check it
|
|
||||||
num_files = 0
|
|
||||||
num_bytes = 0
|
|
||||||
tostrip = len(what.split(os.sep))
|
|
||||||
with zipfile.ZipFile(fd_to_send, "w", zipfile.ZIP_DEFLATED) as zf:
|
|
||||||
for path,dirs,files in os.walk(what):
|
|
||||||
# path always starts with args.what, then sometimes might
|
|
||||||
# have "/subdir" appended. We want the zipfile to contain
|
|
||||||
# "" or "subdir"
|
|
||||||
localpath = list(path.split(os.sep)[tostrip:])
|
|
||||||
for fn in files:
|
|
||||||
archivename = os.path.join(*tuple(localpath+[fn]))
|
|
||||||
localfilename = os.path.join(path, fn)
|
|
||||||
zf.write(localfilename, archivename)
|
|
||||||
num_bytes += os.stat(localfilename).st_size
|
|
||||||
num_files += 1
|
|
||||||
fd_to_send.seek(0,2)
|
|
||||||
filesize = fd_to_send.tell()
|
|
||||||
fd_to_send.seek(0,0)
|
|
||||||
phase1["directory"] = {
|
|
||||||
"mode": "zipfile/deflated",
|
|
||||||
"dirname": basename,
|
|
||||||
"zipsize": filesize,
|
|
||||||
"numbytes": num_bytes,
|
|
||||||
"numfiles": num_files,
|
|
||||||
}
|
|
||||||
print(u"Sending directory (%d bytes compressed) named '%s'"
|
|
||||||
% (filesize, basename), file=args.stdout)
|
|
||||||
return phase1, fd_to_send
|
|
||||||
|
|
||||||
raise TypeError("'%s' is neither file nor directory" % args.what)
|
|
||||||
|
|
||||||
@inlineCallbacks
|
@inlineCallbacks
|
||||||
def send_twisted(args, reactor=reactor):
|
def send_twisted(args, reactor=reactor):
|
||||||
assert isinstance(args.relay_url, type(u""))
|
assert isinstance(args.relay_url, type(u""))
|
||||||
|
@ -189,6 +104,91 @@ def send_twisted(args, reactor=reactor):
|
||||||
args.stdout, args.hide_progress, args.timing)
|
args.stdout, args.hide_progress, args.timing)
|
||||||
returnValue(0)
|
returnValue(0)
|
||||||
|
|
||||||
|
def handle_zero(args):
|
||||||
|
if args.zeromode:
|
||||||
|
assert not args.code
|
||||||
|
args.code = u"0-"
|
||||||
|
|
||||||
|
def build_phase1_data(args):
|
||||||
|
phase1 = {}
|
||||||
|
|
||||||
|
text = args.text
|
||||||
|
if text == "-":
|
||||||
|
print(u"Reading text message from stdin..", file=args.stdout)
|
||||||
|
text = sys.stdin.read()
|
||||||
|
if not text and not args.what:
|
||||||
|
text = six.moves.input("Text to send: ")
|
||||||
|
|
||||||
|
if text is not None:
|
||||||
|
print(u"Sending text message (%d bytes)" % len(text), file=args.stdout)
|
||||||
|
phase1 = { "message": text }
|
||||||
|
fd_to_send = None
|
||||||
|
return phase1, fd_to_send
|
||||||
|
|
||||||
|
what = os.path.join(args.cwd, args.what)
|
||||||
|
what = what.rstrip(os.sep)
|
||||||
|
if not os.path.exists(what):
|
||||||
|
raise TransferError("Cannot send: no file/directory named '%s'" %
|
||||||
|
args.what)
|
||||||
|
basename = os.path.basename(what)
|
||||||
|
|
||||||
|
if os.path.isfile(what):
|
||||||
|
# we're sending a file
|
||||||
|
filesize = os.stat(what).st_size
|
||||||
|
phase1["file"] = {
|
||||||
|
"filename": basename,
|
||||||
|
"filesize": filesize,
|
||||||
|
}
|
||||||
|
print(u"Sending %d byte file named '%s'" % (filesize, basename),
|
||||||
|
file=args.stdout)
|
||||||
|
fd_to_send = open(what, "rb")
|
||||||
|
return phase1, fd_to_send
|
||||||
|
|
||||||
|
if os.path.isdir(what):
|
||||||
|
print(u"Building zipfile..", file=args.stdout)
|
||||||
|
# We're sending a directory. Create a zipfile in a tempdir and
|
||||||
|
# send that.
|
||||||
|
fd_to_send = tempfile.SpooledTemporaryFile()
|
||||||
|
# TODO: I think ZIP_DEFLATED means compressed.. check it
|
||||||
|
num_files = 0
|
||||||
|
num_bytes = 0
|
||||||
|
tostrip = len(what.split(os.sep))
|
||||||
|
with zipfile.ZipFile(fd_to_send, "w", zipfile.ZIP_DEFLATED) as zf:
|
||||||
|
for path,dirs,files in os.walk(what):
|
||||||
|
# path always starts with args.what, then sometimes might
|
||||||
|
# have "/subdir" appended. We want the zipfile to contain
|
||||||
|
# "" or "subdir"
|
||||||
|
localpath = list(path.split(os.sep)[tostrip:])
|
||||||
|
for fn in files:
|
||||||
|
archivename = os.path.join(*tuple(localpath+[fn]))
|
||||||
|
localfilename = os.path.join(path, fn)
|
||||||
|
zf.write(localfilename, archivename)
|
||||||
|
num_bytes += os.stat(localfilename).st_size
|
||||||
|
num_files += 1
|
||||||
|
fd_to_send.seek(0,2)
|
||||||
|
filesize = fd_to_send.tell()
|
||||||
|
fd_to_send.seek(0,0)
|
||||||
|
phase1["directory"] = {
|
||||||
|
"mode": "zipfile/deflated",
|
||||||
|
"dirname": basename,
|
||||||
|
"zipsize": filesize,
|
||||||
|
"numbytes": num_bytes,
|
||||||
|
"numfiles": num_files,
|
||||||
|
}
|
||||||
|
print(u"Sending directory (%d bytes compressed) named '%s'"
|
||||||
|
% (filesize, basename), file=args.stdout)
|
||||||
|
return phase1, fd_to_send
|
||||||
|
|
||||||
|
raise TypeError("'%s' is neither file nor directory" % args.what)
|
||||||
|
|
||||||
|
def build_other_command(args):
|
||||||
|
other_cmd = "wormhole receive"
|
||||||
|
if args.verify:
|
||||||
|
other_cmd = "wormhole --verify receive"
|
||||||
|
if args.zeromode:
|
||||||
|
other_cmd += " -0"
|
||||||
|
return other_cmd
|
||||||
|
|
||||||
@inlineCallbacks
|
@inlineCallbacks
|
||||||
def _send_file_twisted(tdata, transit_sender, fd_to_send,
|
def _send_file_twisted(tdata, transit_sender, fd_to_send,
|
||||||
stdout, hide_progress, timing):
|
stdout, hide_progress, timing):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user