From 565e0a5623a8ec302aaefa37575caeabc3d935b9 Mon Sep 17 00:00:00 2001
From: Matt Johnston <matt@ucc.asn.au>
Date: Tue, 11 Apr 2023 23:32:13 +0800
Subject: [PATCH] Exit sunsetc when stdin has EOF

Fixes hanging at the end of "git push"
---
 async/src/cmdline_client.rs | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/async/src/cmdline_client.rs b/async/src/cmdline_client.rs
index e2c97f5..23dcebe 100644
--- a/async/src/cmdline_client.rs
+++ b/async/src/cmdline_client.rs
@@ -239,6 +239,9 @@ impl<'a> CmdlineRunner<'a> {
                 // TODO buffers
                 let mut buf = [0u8; 1000];
                 let l = si.read(&mut buf).await.map_err(|_| Error::ChannelEOF)?;
+                if l == 0 {
+                    return Err(Error::ChannelEOF)
+                }
 
                 let buf = &buf[..l];
 
-- 
GitLab