我正在使用Shake,调用wget
来下载文件。如果我在命令行上这样做,我会看到一个单行进度条,但是当从Shake调用时,我会看到许多点。举个例子:
shake shakeOptions $
action
(cmd "wget http://hackage.haskell.org/packages/index.tar.gz" :: Action ())
我希望这能显示单行进度条。
答案 0 :(得分:0)
解决方案是:
shake shakeOptions{shakeLineBuffering=False} $
action
(cmd "wget http://hackage.haskell.org/packages/index.tar.gz --progress=bar:force" :: Action ())
这里有两件事:
1)wget
检测到它没有直接发送到控制台(因为cmd
使用管道捕获输出),并关闭进度条。使用wget
,您可以使用--progress=bar:force
重新启用。
2)一旦我完成了,进度条实际上并没有显示,
因为Shake默认启用行缓冲(它有助于并行运行的命令显示更少的交错输出)并且进度条仅在内部更新
一条线。您可以通过设置选项来解决此问题
shakeLineBuffering=False
。