我正在寻找一种方法来说服bash“我已经在指定的目录中传递了一个文件”,而无需实际下载并在磁盘上创建该目录,或者将远程文件直接传递到我的protocol buffer编译器而不将其写入磁盘。
我希望我的protocol buffers编译器查看远程文件,编译我的类,然后在不下载.proto的情况下完成编译。
我有这个脚本,现在可以让我们通过了
git archive --remote=git@bitbucket.org:redzoneco/asset-pipeline-protocol-buffers.git master preflight_check_service/preflight.proto | tar -x
preflight_check_service/preflight.proto
protoc --python_out=chalicelib/protos preflight_check_service/preflight.proto
rm -r preflight_check_service但正如您所看到的,我们在本地创建目录,运行protoc,然后删除该文件。看起来像是浪费。
发布于 2021-07-22 23:56:00
我认为你不能避免使用临时文件/目录,因为protoc不接受通过stdin输入的文件。有一个开放的票证here,但它几乎没有受到关注。
您可以随时将.proto文件放入您的目的地,而不用担心它。因此,在您的示例中,将其放在chalicelib/protos中。这将有助于记录创建的内容和原因。(如果这是签入到源代码控制中,则...for其他人,如果没有,则仅供您自己使用。)
https://stackoverflow.com/questions/68478220
复制相似问题