Skip to content

Commit 99ed82f

Browse files
authored
feat(cmd): add flag to disable progress ps info (#1241)
1 parent a2096bc commit 99ed82f

10 files changed

Lines changed: 69 additions & 54 deletions

File tree

app/dl/dl.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,9 @@ func Run(ctx context.Context, c *telegram.Client, kvd storage.Storage, opts Opti
9999

100100
dlProgress := prog.New(utils.Byte.FormatBinaryBytes)
101101
dlProgress.SetNumTrackersExpected(it.Total())
102-
prog.EnablePS(ctx, dlProgress)
102+
if !viper.GetBool(consts.FlagDisableProgressPS) {
103+
prog.EnablePS(ctx, dlProgress)
104+
}
103105

104106
options := downloader.Options{
105107
Pool: pool,

app/forward/forward.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,9 @@ func Run(ctx context.Context, c *telegram.Client, kvd storage.Storage, opts Opti
8080

8181
fwProgress := prog.New(pw.FormatNumber)
8282
fwProgress.SetNumTrackersExpected(totalMessages(dialogs))
83-
prog.EnablePS(ctx, fwProgress)
83+
if !viper.GetBool(consts.FlagDisableProgressPS) {
84+
prog.EnablePS(ctx, fwProgress)
85+
}
8486

8587
fw := forwarder.New(forwarder.Options{
8688
Pool: pool,

app/up/up.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,9 @@ func Run(ctx context.Context, c *telegram.Client, kvd storage.Storage, opts Opti
9090

9191
upProgress := prog.New(utils.Byte.FormatBinaryBytes)
9292
upProgress.SetNumTrackersExpected(len(files))
93-
prog.EnablePS(ctx, upProgress)
93+
if !viper.GetBool(consts.FlagDisableProgressPS) {
94+
prog.EnablePS(ctx, upProgress)
95+
}
9496

9597
options := uploader.Options{
9698
Client: pool.Default(ctx),

cmd/root.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ func New() *cobra.Command {
166166

167167
cmd.PersistentFlags().String(consts.FlagNTP, "", "ntp server host, if not set, use system time")
168168
cmd.PersistentFlags().Duration(consts.FlagReconnectTimeout, 5*time.Minute, "Telegram client reconnection backoff timeout, infinite if set to 0") // #158
169+
cmd.PersistentFlags().Bool(consts.FlagDisableProgressPS, false, "disable progress ps, which may cause display issues in some terminals") // #850
169170

170171
// completion
171172
_ = cmd.RegisterFlagCompletionFunc(consts.FlagNamespace, func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {

docs/content/en/guide/global-config.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,3 +106,11 @@ Set higher delay time if you want to avoid Telegram's flood control.
106106
{{< command >}}
107107
tdl --delay 5s
108108
{{< /command >}}
109+
110+
## `--disable-progress-ps`
111+
112+
Disable progress CPU/memory usage stats, which may cause display issues in some terminals. Default: `false`.
113+
114+
{{< command >}}
115+
tdl --disable-progress-ps
116+
{{< /command >}}

docs/content/en/more/env.md

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,20 @@ The values of all environment variables have a lower priority than flags.
1111

1212
Avoid typing the same flag values repeatedly every time by setting environment variables.
1313

14-
| NAME | FLAG |
15-
|:-----------------------:|:---------------------:|
16-
| `TDL_NS` | `-n/--ns` |
17-
| `TDL_PROXY` | `--proxy` |
18-
| `TDL_STORAGE` | `--storage` |
19-
| `TDL_DEBUG` | `--debug` |
20-
| `TDL_SIZE` | `-s/--size` |
21-
| `TDL_THREADS` | `-t/--threads` |
22-
| `TDL_LIMIT` | `-l/--limit` |
23-
| `TDL_POOL` | `--pool` |
24-
| `TDL_NTP` | `--ntp` |
25-
| `TDL_RECONNECT_TIMEOUT` | `--reconnect-timeout` |
26-
| `TDL_TEMPLATE` | dl `--template` |
14+
| NAME | FLAG |
15+
|:-------------------------:|:-----------------------:|
16+
| `TDL_NS` | `-n/--ns` |
17+
| `TDL_PROXY` | `--proxy` |
18+
| `TDL_STORAGE` | `--storage` |
19+
| `TDL_DEBUG` | `--debug` |
20+
| `TDL_SIZE` | `-s/--size` |
21+
| `TDL_THREADS` | `-t/--threads` |
22+
| `TDL_LIMIT` | `-l/--limit` |
23+
| `TDL_POOL` | `--pool` |
24+
| `TDL_NTP` | `--ntp` |
25+
| `TDL_RECONNECT_TIMEOUT` | `--reconnect-timeout` |
26+
| `TDL_DISABLE_PROGRESS_PS` | `--disable-progress-ps` |
27+
| `TDL_TEMPLATE` | dl `--template` |
2728

2829
{{< hint warning >}}
2930
- `TDL_STORAGE` format in env is different from that in flags: `{"type": "bolt", "path": "/path/to/data-dir"}` (JSON object).

docs/content/zh/guide/global-config.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
title: "全局设置"
33
weight: 10
44
---
5+
56
# 全局配置
67

78
全局配置是可以在每个命令中设置的选项。
@@ -106,3 +107,10 @@ tdl --pool 2
106107
tdl --delay 5s
107108
{{< /command >}}
108109

110+
## `--disable-progress-ps`
111+
112+
禁用进度条CPU/内存使用统计信息,这可能会在某些终端中导致显示问题。默认值:`false`
113+
114+
{{< command >}}
115+
tdl --disable-progress-ps
116+
{{< /command >}}

docs/content/zh/more/env.md

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,20 @@ weight: 20
1111

1212
通过设置环境变量,避免在每次重复输入相同的命令行选项。
1313

14-
| 环境变量 | 对应选项 |
15-
|:-----------------------:|:---------------------:|
16-
| `TDL_NS` | `-n/--ns` |
17-
| `TDL_PROXY` | `--proxy` |
18-
| `TDL_STORAGE` | `--storage` |
19-
| `TDL_DEBUG` | `--debug` |
20-
| `TDL_SIZE` | `-s/--size` |
21-
| `TDL_THREADS` | `-t/--threads` |
22-
| `TDL_LIMIT` | `-l/--limit` |
23-
| `TDL_POOL` | `--pool` |
24-
| `TDL_NTP` | `--ntp` |
25-
| `TDL_RECONNECT_TIMEOUT` | `--reconnect-timeout` |
26-
| `TDL_TEMPLATE` | dl `--template` |
14+
| 环境变量 | 对应选项 |
15+
|:-------------------------:|:-----------------------:|
16+
| `TDL_NS` | `-n/--ns` |
17+
| `TDL_PROXY` | `--proxy` |
18+
| `TDL_STORAGE` | `--storage` |
19+
| `TDL_DEBUG` | `--debug` |
20+
| `TDL_SIZE` | `-s/--size` |
21+
| `TDL_THREADS` | `-t/--threads` |
22+
| `TDL_LIMIT` | `-l/--limit` |
23+
| `TDL_POOL` | `--pool` |
24+
| `TDL_NTP` | `--ntp` |
25+
| `TDL_RECONNECT_TIMEOUT` | `--reconnect-timeout` |
26+
| `TDL_DISABLE_PROGRESS_PS` | `--disable-progress-ps` |
27+
| `TDL_TEMPLATE` | dl `--template` |
2728

2829
{{< hint warning >}}
2930
- `TDL_STORAGE` 环境变量的格式与命令行选项不同:`{"type": "bolt", "path": "/path/to/data-dir"}` (JSON 对象)。

go.work.sum

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,6 @@ github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMr
4646
github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw=
4747
github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
4848
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
49-
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
50-
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
5149
github.com/chzyer/readline v1.5.1 h1:upd/6fQk4src78LMRzh5vItIt361/o4uq553V8B5sGI=
5250
github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObkaSkeBlk=
5351
github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 h1:QVw89YDxXxEe+l8gU8ETbOasdwEV+avkR75ZzsVV9WI=
@@ -62,7 +60,6 @@ github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwP
6260
github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg=
6361
github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo=
6462
github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ=
65-
github.com/coder/websocket v1.8.14 h1:9L0p0iKiNOibykf283eHkKUHHrpG7f65OE3BhhO7v9g=
6663
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
6764
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
6865
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
@@ -159,10 +156,7 @@ github.com/klauspost/cpuid/v2 v2.2.6/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZY
159156
github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8=
160157
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
161158
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
162-
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
163159
github.com/kr/pty v1.1.1 h1:VkoXIwSboBpnk99O/KFauAEILuNHv5DVFKZMBN/gUgw=
164-
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
165-
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
166160
github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34=
167161
github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM=
168162
github.com/minio/minio-go/v7 v7.0.69 h1:l8AnsQFyY1xiwa/DaQskY4NXSLA2yrGsW5iD9nRPVS0=
@@ -177,7 +171,6 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G
177171
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
178172
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
179173
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
180-
github.com/ogen-go/ogen v1.19.0 h1:YvdNpeQJ8A8dLLpS6Vs4WxXL53BT6tBPxH0VSjfALhA=
181174
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0=
182175
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y=
183176
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e h1:aoZm08cpOy4WuID//EZDgcC4zIxODThtZNPirFr42+A=
@@ -221,8 +214,6 @@ github.com/sebdah/goldie/v2 v2.5.3/go.mod h1:oZ9fp0+se1eapSRjfYbsV/0Hqhbuu3bJVvK
221214
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
222215
github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
223216
github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
224-
github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k=
225-
github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME=
226217
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
227218
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
228219
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
@@ -242,8 +233,6 @@ go.etcd.io/gofail v0.1.0 h1:XItAMIhOojXFQMgrxjnd2EIIHun/d5qL0Pf7FzVTkFg=
242233
go.etcd.io/gofail v0.1.0/go.mod h1:VZBCXYGZhHAinaBiiqYvuDynvahNsAyLFwB3kEHKz1M=
243234
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
244235
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
245-
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
246-
go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
247236
go.opentelemetry.io/collector/pdata v1.36.0 h1:jg7s08dKxWaA/o5NHiFW7Hjyxp1n4xEOMQpoCztiyJk=
248237
go.opentelemetry.io/collector/pdata v1.36.0/go.mod h1:pttpb089864qG1k0DMeXLgwwTFLk+o3fAW9I6MF9tzw=
249238
go.opentelemetry.io/contrib/bridges/otelzap v0.12.0 h1:FGre0nZh5BSw7G73VpT3xs38HchsfPsa2aZtMp0NPOs=
@@ -364,6 +353,8 @@ golang.org/x/telemetry v0.0.0-20260109210033-bd525da824e2 h1:O1cMQHRfwNpDfDJerqR
364353
golang.org/x/telemetry v0.0.0-20260109210033-bd525da824e2/go.mod h1:b7fPSJ0pKZ3ccUh8gnTONJxhn3c/PS6tyzQvyqw4iA8=
365354
golang.org/x/telemetry v0.0.0-20260209163413-e7419c687ee4 h1:bTLqdHv7xrGlFbvf5/TXNxy/iUwwdkjhqQTJDjW7aj0=
366355
golang.org/x/telemetry v0.0.0-20260209163413-e7419c687ee4/go.mod h1:g5NllXBEermZrmR51cJDQxmJUHUOfRAaNyWBM+R+548=
356+
golang.org/x/telemetry v0.0.0-20260409153401-be6f6cb8b1fa h1:efT73AJZfAAUV7SOip6pWGkwJDzIGiKBZGVzHYa+ve4=
357+
golang.org/x/telemetry v0.0.0-20260409153401-be6f6cb8b1fa/go.mod h1:kHjTxDEnAu6/Nl9lDkzjWpR+bmKfxeiRuSDlsMb70gE=
367358
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
368359
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
369360
golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
@@ -403,8 +394,6 @@ google.golang.org/grpc v1.67.3 h1:OgPcDAFKHnH8X3O4WcO4XUc8GRDeKsKReqbQtiCj7N8=
403394
google.golang.org/grpc v1.67.3/go.mod h1:YGaHCc6Oap+FzBJTZLBzkGSYt/cvGPFTPxkn7QfSU8s=
404395
google.golang.org/grpc v1.74.0 h1:sxRSkyLxlceWQiqDofxDot3d4u7DyoHPc7SBXMj8gGY=
405396
google.golang.org/grpc v1.74.0/go.mod h1:NZUaK8dAMUfzhK6uxZ+9511LtOrk73UGWOFoNvz7z+s=
406-
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
407-
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
408397
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
409398
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
410399
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=

pkg/consts/flag.go

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
package consts
22

33
const (
4-
FlagStorage = "storage"
5-
FlagProxy = "proxy"
6-
FlagNamespace = "ns"
7-
FlagDebug = "debug"
8-
FlagPartSize = "size" // Deprecated: all part size should be set to maximum by default
9-
FlagThreads = "threads"
10-
FlagLimit = "limit"
11-
FlagPoolSize = "pool"
12-
FlagDelay = "delay"
13-
FlagNTP = "ntp"
14-
FlagReconnectTimeout = "reconnect-timeout"
15-
FlagDlTemplate = "template"
4+
FlagStorage = "storage"
5+
FlagProxy = "proxy"
6+
FlagNamespace = "ns"
7+
FlagDebug = "debug"
8+
FlagPartSize = "size" // Deprecated: all part size should be set to maximum by default
9+
FlagThreads = "threads"
10+
FlagLimit = "limit"
11+
FlagPoolSize = "pool"
12+
FlagDelay = "delay"
13+
FlagNTP = "ntp"
14+
FlagReconnectTimeout = "reconnect-timeout"
15+
FlagDisableProgressPS = "disable-progress-ps"
16+
FlagDlTemplate = "template"
1617
)

0 commit comments

Comments
 (0)