From 8099ae44d73b45f684c0055bb78873c06a6dc80a Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 6 Nov 2021 12:54:20 +0530 Subject: [PATCH] create fid_map after collecting files not before --- kittens/transfer/receive.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/kittens/transfer/receive.py b/kittens/transfer/receive.py index bd95f72e4..97310e53d 100644 --- a/kittens/transfer/receive.py +++ b/kittens/transfer/receive.py @@ -173,7 +173,6 @@ class Manager: self.transfer_done = False def start_transfer(self) -> Iterator[str]: - self.fid_map = {f.file_id: f for f in self.files} yield FileTransmissionCommand(action=Action.receive, bypass=self.bypass, size=len(self.spec)).serialize() for i, x in enumerate(self.spec): yield FileTransmissionCommand(action=Action.file, file_id=str(i), name=x).serialize() @@ -223,6 +222,7 @@ class Manager: def collect_files(self, cli_opts: TransferCLIOptions) -> None: self.files = list(files_for_receive(cli_opts, self.dest, self.files, self.remote_home, self.spec)) self.total_transfer_size = sum(max(0, f.expected_size) for f in self.files) + self.fid_map = {f.file_id: f for f in self.files} def on_file_transfer_response(self, ftc: FileTransmissionCommand) -> str: if self.state is State.waiting_for_permission: @@ -332,6 +332,11 @@ class Receive(Handler): self.confirm_paths() else: self.start_transfer() + if self.manager.transfer_done: + self.exit_after_completion() + + def exit_after_completion(self) -> None: + self.quit_loop(0) def confirm_paths(self) -> None: self.print_check_paths()