From bc9dbfd90570e3a8a818a771127b4b8af1baec68 Mon Sep 17 00:00:00 2001 From: Asuka Minato Date: Sat, 31 Aug 2024 00:08:25 +0900 Subject: [PATCH 1/3] use term.GetSize --- src/croc/croc.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/croc/croc.go b/src/croc/croc.go index a10b70be..0a3555fb 100644 --- a/src/croc/croc.go +++ b/src/croc/croc.go @@ -19,6 +19,7 @@ import ( "sync" "time" + "golang.org/x/term" "golang.org/x/time/rate" "github.com/denisbrodbeck/machineid" @@ -1735,8 +1736,9 @@ func (c *Client) createEmptyFileAndFinish(fileInfo FileInfo, i int) (err error) } else { description = " " + description } - if len(description) > 20 { - description = description[:17] + "..." + width, _, err := term.GetSize(int(os.Stdout.Fd())) + if len(description) > width { + description = description[:(width-3)] + "..." } c.bar = progressbar.NewOptions64(1, progressbar.OptionOnCompletion(func() { @@ -1914,8 +1916,10 @@ func (c *Client) setBar() { } else if !c.Options.IsSender { description = " " + description } - if len(description) > 20 { - description = description[:17] + "..." + width, _, _ := term.GetSize(int(os.Stdout.Fd())) + description = strings.TrimSpace(description) + if len(description) > width { + description = description[:(width-3)] + "..." } c.bar = progressbar.NewOptions64( c.FilesToTransfer[c.FilesToTransferCurrentNum].Size, From 90ed1f797ea6daa149e535700763f3e0fa8de2db Mon Sep 17 00:00:00 2001 From: Asuka Minato Date: Sat, 31 Aug 2024 00:23:21 +0900 Subject: [PATCH 2/3] add error handling --- src/croc/croc.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/croc/croc.go b/src/croc/croc.go index 0a3555fb..57e102d8 100644 --- a/src/croc/croc.go +++ b/src/croc/croc.go @@ -1737,6 +1737,9 @@ func (c *Client) createEmptyFileAndFinish(fileInfo FileInfo, i int) (err error) description = " " + description } width, _, err := term.GetSize(int(os.Stdout.Fd())) + if err != nil { + return + } if len(description) > width { description = description[:(width-3)] + "..." } @@ -1916,7 +1919,10 @@ func (c *Client) setBar() { } else if !c.Options.IsSender { description = " " + description } - width, _, _ := term.GetSize(int(os.Stdout.Fd())) + width, _, err := term.GetSize(int(os.Stdout.Fd())) + if err != nil { + return + } description = strings.TrimSpace(description) if len(description) > width { description = description[:(width-3)] + "..." From 319a40308242511001a351f10f3d9a547b8e33d1 Mon Sep 17 00:00:00 2001 From: Asuka Minato Date: Sun, 1 Sep 2024 21:39:40 +0900 Subject: [PATCH 3/3] fix long file name --- src/croc/croc.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/croc/croc.go b/src/croc/croc.go index 57e102d8..ef8a5bfc 100644 --- a/src/croc/croc.go +++ b/src/croc/croc.go @@ -1698,7 +1698,12 @@ func (c *Client) recipientGetFileReady(finished bool) (err error) { c.Step3RecipientRequestFile = true return } - +func max(a int, b int) int { + if a > b { + return a + } + return b +} func (c *Client) createEmptyFileAndFinish(fileInfo FileInfo, i int) (err error) { log.Debugf("touching file with folder / name") if !utils.Exists(fileInfo.FolderRemote) { @@ -1737,6 +1742,7 @@ func (c *Client) createEmptyFileAndFinish(fileInfo FileInfo, i int) (err error) description = " " + description } width, _, err := term.GetSize(int(os.Stdout.Fd())) + width = max(20, width-70) if err != nil { return } @@ -1923,9 +1929,10 @@ func (c *Client) setBar() { if err != nil { return } + width = max(20, width-70) description = strings.TrimSpace(description) if len(description) > width { - description = description[:(width-3)] + "..." + description = description[:width-3] + "..." } c.bar = progressbar.NewOptions64( c.FilesToTransfer[c.FilesToTransferCurrentNum].Size,