【发布时间】:2015-03-07 03:34:40
【问题描述】:
是否可以编写一个 Apache2 服务来将内容通过管道传输到正在生成的客户端?
我想设置一个简单的 http 服务来触发构建,并在编译进行时立即开始向客户端发送标准输出(gcc 内容)。目标是客户可以使用例如curl 测试构建:
curl http://myserver.com/testbuild -F "file=@mypkg.tar.gz"
并立即从服务器上的构建过程中查看标准输出。
【问题讨论】:
是否可以编写一个 Apache2 服务来将内容通过管道传输到正在生成的客户端?
我想设置一个简单的 http 服务来触发构建,并在编译进行时立即开始向客户端发送标准输出(gcc 内容)。目标是客户可以使用例如curl 测试构建:
curl http://myserver.com/testbuild -F "file=@mypkg.tar.gz"
并立即从服务器上的构建过程中查看标准输出。
【问题讨论】:
我认为以某种方式using a cgi script 是可能的,但诀窍是立即获取标准输出,绕过缓冲。如果你真的不需要 http 作为传输协议,为什么不通过netcat 使用直接 tcp 流。
在构建服务器上运行如下脚本:
#!/bin/bash
while true ; do
nc -l -p 8080 -e /path/to/buildscript
done
当任何客户端通过连接时
nc <buildservername or ip> 8080
它会立即获得强大的构建。
我的建议会有所不同(使用jenkins 作为 ci 服务器,我什至在 cubietruck 上也这样做),但对于一个快速且小型的解决方案,它应该足够了。如果您需要 http,您甚至可以将 http 标头添加到您的构建脚本中。
【讨论】: