干净的方法来复制标准输入-由git pre-push使用?

雨果

我想将标准输入传递给两个不同的进程。有什么不错的干净方法可以做到这一点?

(我在下面提出了一种基于临时文件的方法,但是也许有更好的方法?)

GitHub的“ git lfs pre-push”预推钩子显示为stdin。我想安装第二个预推检查,例如在pre-push.sample中找到的WIP检查。这意味着我需要以某种合理的方式保存stdin,以便“ git lfs pre-push”和“ while read local_ref local_sha remote_ref remote_sha”循环都可以读取提交。

格伦·杰克曼

您可以使用tee输出过程替换

为了清楚起见,这里将单独的检查代码放入函数中:

check1() {
  git lfs pre-push "$@"
}

check2() {
  while read -ra variables; do
    : ...
  done
}

# redirecting to /dev/null so you don't get the original input as well
tee >(check1) >(check2) >/dev/null

我不确定这些限制,但是您可以通过这种方式进行任意数量的检查:

tee >(check1) \
    >(check2) \
    >(check3) ...

演示:

check1() { while IFS= read -r n; do echo $((n*5)); done; }
check2() { while IFS= read -r line; do echo ">>>$line<<<"; done; }
seq 101 100 1101 | tee >(check1) >(check2) >/dev/null

输出

505
>>>101<<<
1005
1505
2005
2505
3005
3505
>>>201<<<
4005
4505
>>>301<<<
5005
>>>401<<<
5505
>>>501<<<
>>>601<<<
>>>701<<<
>>>801<<<
>>>901<<<
>>>1001<<<
>>>1101<<<

由于两个检查都在子外壳程序中运行,因此输出顺序不确定。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

git中的pre-push和pre-receive钩子之间的区别?

来自分类Dev

将参数传递给git pre-push hook

来自分类Dev

git pre-push hook,如果是--tags则不运行

来自分类Dev

如何知道git pre-push钩子文件中的“远程”

来自分类Dev

如何使用pre-push git hook检查本地和远程分支之间的某些文件或目录是否不同?

来自分类Dev

Git pre-push hook 似乎不适用于 git push

来自分类Dev

如何使用这个git pre-commit钩子

来自分类Dev

git pre-push:运行测试时,远程主机关闭了连接

来自分类Dev

git pre-push hook无法推送所有内容

来自分类Dev

使用python库“ pre-commit”,如何添加运行单个python文件的git pre-commit钩子?

来自分类Dev

Git的pre-commit / pre-push钩子可以在提交时运行单元测试,而工作树上有未提交的更改

来自分类Dev

使用 shell 命令删除 <pre>...</pre> 块

来自分类Dev

Pre Commit hook git error

来自分类Dev

尝试使用pre_save方法填充必填字段

来自分类Dev

尝试使用pre_save方法填充必填字段

来自分类Dev

如何使用flake8在git pre-commit挂钩中排除文件?

来自分类Dev

在GitHub客户端上下文中使用git pre-commit挂钩

来自分类Dev

如何使用flake8在git pre-commit挂钩中排除文件?

来自分类Dev

编写通用方法来复制数组

来自分类Dev

Git干净的方法来获取SW的早期版本

来自分类Dev

来自<pre>标记的Python输入

来自分类Dev

在由git hooks修改的文件上使用skip-worktree?

来自分类Dev

git pre-receive hook检查配置

来自分类Dev

git pre-receive hook检查配置

来自分类Dev

不要创建 git pre-commit 钩子

来自分类Dev

干净的方法来以编程方式使用JS的CSS转换?

来自分类Dev

使用git push无法看到更改

来自分类Dev

不允许使用bitbucket git push

来自分类Dev

Git Push使用了错误的凭证

Related 相关文章

  1. 1

    git中的pre-push和pre-receive钩子之间的区别?

  2. 2

    将参数传递给git pre-push hook

  3. 3

    git pre-push hook,如果是--tags则不运行

  4. 4

    如何知道git pre-push钩子文件中的“远程”

  5. 5

    如何使用pre-push git hook检查本地和远程分支之间的某些文件或目录是否不同?

  6. 6

    Git pre-push hook 似乎不适用于 git push

  7. 7

    如何使用这个git pre-commit钩子

  8. 8

    git pre-push:运行测试时,远程主机关闭了连接

  9. 9

    git pre-push hook无法推送所有内容

  10. 10

    使用python库“ pre-commit”,如何添加运行单个python文件的git pre-commit钩子?

  11. 11

    Git的pre-commit / pre-push钩子可以在提交时运行单元测试,而工作树上有未提交的更改

  12. 12

    使用 shell 命令删除 <pre>...</pre> 块

  13. 13

    Pre Commit hook git error

  14. 14

    尝试使用pre_save方法填充必填字段

  15. 15

    尝试使用pre_save方法填充必填字段

  16. 16

    如何使用flake8在git pre-commit挂钩中排除文件?

  17. 17

    在GitHub客户端上下文中使用git pre-commit挂钩

  18. 18

    如何使用flake8在git pre-commit挂钩中排除文件?

  19. 19

    编写通用方法来复制数组

  20. 20

    Git干净的方法来获取SW的早期版本

  21. 21

    来自<pre>标记的Python输入

  22. 22

    在由git hooks修改的文件上使用skip-worktree?

  23. 23

    git pre-receive hook检查配置

  24. 24

    git pre-receive hook检查配置

  25. 25

    不要创建 git pre-commit 钩子

  26. 26

    干净的方法来以编程方式使用JS的CSS转换?

  27. 27

    使用git push无法看到更改

  28. 28

    不允许使用bitbucket git push

  29. 29

    Git Push使用了错误的凭证

热门标签

归档