在git post-receive脚本中输出实时

时间:2017-09-24 15:31:21

标签: git githooks

我在Linux Ubuntu计算机(14.04和16.04)上有一些远程存储库(以 - 裸开头)。这些存储库接收提交,然后 hooks 脚本的事件开始部署应用程序。 deploy使用的脚本是 post-receive

但是,我希望这个脚本能够向客户端显示输出实时提交提交,而不仅仅是脚本完成时。

根据this responsethis line,只要脚本将新行写入输出,缓冲区就会被卸载。

但是我已经用几种方式尝试了这一点,但都没有效果。我只得到脚本结束时推送提交的客户端的响应。

我已经尝试过了:

#!/bin/bash

echo "A - Starting deploy. \n";
echo "A - Starting deploy. \n\r";
echo "A - Starting deploy. \r";
echo -e "A - Starting deploy. \n";
echo -e "A - Starting deploy. \n\r";
echo -e "A - Starting deploy. \r";
printf "A - Starting deploy. \n";
printf "A - Starting deploy. \n\r";
printf "A - Starting deploy. \r";

# Code for deploy ...

echo "B - Finished deploy.";

但所有产出,包括" A"和" B"在整个脚本结束时,客户端控制台上的仅显示

我希望在脚本执行时将每一行呈现给客户端。

我相信这是可能的,因为我使用lib s3cmd上传AWS S3资产,在上传时,输出会显示在执行中,而不仅仅是在结尾,如下所示。有趣的是,当s3cmd开始发送输出时,我写的输出也会在响应中发送。

realtime outputs

有人可以帮助我吗?

0 个答案:

没有答案