mirror of
https://github.com/kovidgoyal/kitty
synced 2026-07-25 17:52:02 +02:00
DRYer
This commit is contained in:
@@ -340,12 +340,10 @@ func (self *manager) request_files() transmit_iterator {
|
|||||||
read_signature = false
|
read_signature = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
queue_write(self.prefix)
|
last_write_id = self.send(FileTransmissionCommand{
|
||||||
queue_write(FileTransmissionCommand{
|
|
||||||
Action: Action_file, Name: f.remote_path, File_id: f.file_id, Ttype: utils.IfElse(
|
Action: Action_file, Name: f.remote_path, File_id: f.file_id, Ttype: utils.IfElse(
|
||||||
read_signature, TransmissionType_rsync, TransmissionType_simple), Compression: f.compression_type,
|
read_signature, TransmissionType_rsync, TransmissionType_simple), Compression: f.compression_type,
|
||||||
}.Serialize(false))
|
}, queue_write)
|
||||||
last_write_id = queue_write(self.suffix)
|
|
||||||
if read_signature {
|
if read_signature {
|
||||||
fsf, err := os.Open(f.expanded_local_path)
|
fsf, err := os.Open(f.expanded_local_path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -365,9 +363,7 @@ func (self *manager) request_files() transmit_iterator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
f.sent_bytes += output.amt
|
f.sent_bytes += output.amt
|
||||||
queue_write(self.prefix)
|
last_write_id = self.send(FileTransmissionCommand{Action: Action_end_data, File_id: f.file_id}, queue_write)
|
||||||
queue_write(FileTransmissionCommand{Action: Action_end_data, File_id: f.file_id}.Serialize(false))
|
|
||||||
last_write_id = queue_write(self.suffix)
|
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -389,15 +385,16 @@ type handler struct {
|
|||||||
last_data_write_id loop.IdType
|
last_data_write_id loop.IdType
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (self *manager) send(c FileTransmissionCommand, send func(string) loop.IdType) loop.IdType {
|
||||||
|
send(self.prefix)
|
||||||
|
send(c.Serialize(false))
|
||||||
|
return send(self.suffix)
|
||||||
|
}
|
||||||
|
|
||||||
func (self *manager) start_transfer(send func(string) loop.IdType) {
|
func (self *manager) start_transfer(send func(string) loop.IdType) {
|
||||||
s := func(c FileTransmissionCommand) {
|
self.send(FileTransmissionCommand{Action: Action_receive, Bypass: self.bypass, Size: int64(len(self.spec))}, send)
|
||||||
send(self.prefix)
|
|
||||||
send(c.Serialize(false))
|
|
||||||
send(self.suffix)
|
|
||||||
}
|
|
||||||
s(FileTransmissionCommand{Action: Action_receive, Bypass: self.bypass, Size: int64(len(self.spec))})
|
|
||||||
for i, x := range self.spec {
|
for i, x := range self.spec {
|
||||||
s(FileTransmissionCommand{Action: Action_file, File_id: strconv.Itoa(i), Name: x})
|
self.send(FileTransmissionCommand{Action: Action_file, File_id: strconv.Itoa(i), Name: x}, send)
|
||||||
}
|
}
|
||||||
self.progress_tracker.start_transfer()
|
self.progress_tracker.start_transfer()
|
||||||
}
|
}
|
||||||
@@ -415,9 +412,7 @@ func (self *handler) abort_transfer(delay time.Duration) {
|
|||||||
if delay <= 0 {
|
if delay <= 0 {
|
||||||
delay = time.Second * 5
|
delay = time.Second * 5
|
||||||
}
|
}
|
||||||
self.lp.QueueWriteString(self.manager.prefix)
|
self.manager.send(FileTransmissionCommand{Action: Action_cancel}, self.lp.QueueWriteString)
|
||||||
self.lp.QueueWriteString(FileTransmissionCommand{Action: Action_cancel}.Serialize(false))
|
|
||||||
self.lp.QueueWriteString(self.manager.suffix)
|
|
||||||
self.manager.state = state_canceled
|
self.manager.state = state_canceled
|
||||||
self.lp.AddTimer(delay, false, self.do_error_quit)
|
self.lp.AddTimer(delay, false, self.do_error_quit)
|
||||||
}
|
}
|
||||||
@@ -796,9 +791,7 @@ func (self *handler) on_file_transfer_response(ftc *FileTransmissionCommand) (er
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if self.manager.transfer_done {
|
if self.manager.transfer_done {
|
||||||
self.lp.QueueWriteString(self.manager.prefix)
|
self.manager.send(FileTransmissionCommand{Action: Action_finish}, self.lp.QueueWriteString)
|
||||||
self.lp.QueueWriteString(FileTransmissionCommand{Action: Action_finish}.Serialize(false))
|
|
||||||
self.lp.QueueWriteString(self.manager.suffix)
|
|
||||||
self.quit_after_write_code = 0
|
self.quit_after_write_code = 0
|
||||||
self.refresh_progress(0)
|
self.refresh_progress(0)
|
||||||
} else if self.transmit_started {
|
} else if self.transmit_started {
|
||||||
|
|||||||
Reference in New Issue
Block a user