加入收藏 | 设为首页 | 会员中心 | 我要投稿 济源站长网 (https://www.0391zz.cn/)- 数据工具、数据仓库、行业智能、CDN、运营!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

entr:文件更改时再度运行构建

发布时间:2021-05-23 16:06:19 所属栏目:Linux 来源:互联网
导读:快速反馈很棒 就像世界上的每个程序员一样,我发现每次更改代码时都必须手动重新运行构建/测试非常烦人。 许多工具(例如 hugo 和 flask)都有一个内置的系统,

就像世界上的每个程序员一样,我发现每次更改代码时都必须手动重新运行构建/测试非常烦人。

许多工具(例如 hugo 和 flask)都有一个内置的系统,可以在更改文件时自动重建,这很棒!

但是通常我会自己编写一些自定义的构建过程(例如 bash build.sh),而 entr 让我有了一种神奇的构建经验,我只用一行 bash 就能得到即时反馈,知道我的改变是否修复了那个奇怪的 bug。万岁!

重启服务器(entr -r)

但是如果你正在运行服务器,并且每次都需要重新启动服务器怎么办?如果你传递 -r,那么 entr 会帮你的

gitls-files | entr -r python my-server.py

清除屏幕(entr -c)

另一个简洁的标志是 -c,它让你可以在重新运行命令之前清除屏幕,以免被前面构建的输出分散注意力。

与 git ls-files 一起使用

通常,我要跟踪的文件集和我在 git 中的文件列表大致相同,因此将 git ls-files 传递给 entr 是很自然的事情。

我现在有一个项目,有时候我刚创建的文件还没有在 git 里。那么如果你想包含未被跟踪的文件怎么办呢?这些 git 命令行参数就可以做到(我是从一个读者的邮件中得到的,谢谢你!):

gitls-files -cdmo --exclude-standard | entr your-build-script

有人给我发了邮件,说他们做了一个 git-entr 命令,可以执行:

gitls-files -cdmo --exclude-standard | entr -d "$@"

我觉得这真是一个很棒的主意。

每次添加新文件时重启:entr -d

git ls-files 的另一个问题是有时候我添加一个新文件,当然它还没有在 git 中。entr 为此提供了一个很好的功能。如果你传递 -d,那么如果你在 entr 跟踪的任何目录中添加新文件,它就会退出。

我将它与一个 while 循环配合使用,它将重启 entr 来包括新文件,如下所示:

whiletrue

do

{gitls-files;gitls-files .--exclude-standard --others;}| entr -d your-build-scriot

(编辑:济源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读