首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当目录中的文件发生变化时,调用nix-build?

要在目录中的文件发生变化时自动调用 nix-build,你可以使用一些文件监控工具来观察文件系统的变化,并在检测到变化时触发 nix-build。在Linux系统中,一些常用的工具包括 inotify-tools,而在MacOS中,你可以使用 fswatch。这些工具可以帮助你自动化构建过程,提高开发效率。

使用 inotify-tools 在 Linux 上设置

  1. 安装 inotify-tools: 如果你还没有安装 inotify-tools,可以通过包管理器来安装。例如,在Ubuntu上,你可以使用:

sudo apt-get install inotify-tools

  • 创建一个监控脚本: 编写一个脚本来监控特定目录并在检测到文件变化时执行 nix-build。例如,创建一个名为 watch-n-build.sh 的脚本:

#!/bin/bash while inotifywait -e modify -e move -e create -e delete /path/to/your/directory; do nix-build /path/to/your/nix/file.nix done 确保替换 /path/to/your/directory/path/to/your/nix/file.nix 为你的实际路径。

  • 使脚本可执行:

chmod +x watch-n-build.sh

  • 运行脚本:

./watch-n-build.sh 这个脚本会持续运行,监控指定目录的变化,并在每次变化时运行 nix-build

使用 fswatch 在 MacOS 上设置

  1. 安装 fswatch: 如果你使用的是MacOS,可以通过Homebrew安装 fswatch

brew install fswatch

  • 创建一个监控脚本: 类似于Linux的设置,你可以创建一个脚本来监控目录并触发构建:

#!/bin/bash fswatch -o /path/to/your/directory | while read f do nix-build /path/to/your/nix/file.nix done 替换 /path/to/your/directory/path/to/your/nix/file.nix 为你的实际路径。

  • 使脚本可执行:

chmod +x watch-n-build.sh

  • 运行脚本:

./watch-n-build.sh

这些脚本将帮助你自动化 nix-build 的调用,每当你的目录中的文件发生变化时,它们都会触发新的构建。这对于开发过程中快速测试和迭代非常有用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Nodejs读取文件目录所有文件

    关于Nodejs文件系统即File System可以参考官方Node.js v12.18.1文档File system Nodejsfs模块 fs模块提供了一种API,用于以与标准POSIX函数紧密相似的方式与文件系统进行交互...使用fs模块: const fs = require('fs'); 所有文件系统操作都具有同步和异步形式。 异步形式始终将完成回调作为其最后一个参数。...举个例子,我想读取上一级目录所有文件 同步读取上级目录所有文件 如果采用同步读取的话,可以使用fs模块readdirSync方法,示例如下: const fs = require('fs');...// 同步读取上级目录所有文件到files const files = fs.readdirSync('../'); console.log(files); 异步读取上级目录所有文件 如果采用异步读取的话...,可以使用fs模块readdirSync方法,示例如下: const fs = require('fs'); // 异步读取上级目录所有文件 fs.readdir('../', function

    14.6K40

    vue调用js文件_vue调用其他js文件方法

    本文主要介绍了vue引用js文件多种方式,本文大家介绍非常详细,具有一定参考借鉴价值,需要朋友可以参考下 1、vue-cli webpack全局引入jquery (1) 首先 npm...install jquery –save (–save 意思是将模块安装到项目目录下,并在package文件dependencies节点写入依赖。)...3、单vue页面引用内部js方法 (1) 首先 npm install jquery –save (–save 意思是将模块安装到项目目录下,并在package文件dependencies节点写入依赖...(2) 在需要引用vue页面import引入$,然后使用即可 这个图中有黄色警告,如果把console.log($)改成这样: export default{ mounted: function...(){ console.log($) } } 就不会有了,原因可能是得符合vuejs写法吧 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    18.8K50

    rsync同步,删除目标目录比源目录多余文件方法(--delete)

    在日常运维工作,我们经常用到rsync这个同步神器。有时在同步两个目录,会要求删除目标目录中比源目录多出文件,这种情况下,就可用到rsync--delete参数来实现这个需求了。.../work多余文件 最近在处理策划资源文件时候需要将目录A文件全部同步到目录B文件,并且把目录B内多余文件全部删除掉。...fileA1.txt和fileA2.txt不同步到dirB目录内,并且在dirB目录内删除多余文件。...,同时dirB目录fileA1.txt和fileA2.txt两个被过滤文件也被删除掉了。...选项说明: --delete-before 接收者在传输之前进行删除操作 --progress 在传输显示传输过程 --a 归档模式,表示以递归方式传输文件,并保持所有文件属性 --H 保持硬连接文件

    5.8K60

    Linux查看端口被哪个进程占用、进程调用配置文件目录

    1.查看被占用端口进程,netstat/ss -antulp | grep :端口号 2.通过上面的命令就可以列出,这个端口被哪些应用程序所占用,然后找到对应进程PID 3.根据PID查询进程...如果想详细查看这个进程,PID具体是哪一个进程,可以通过命令方式进行查看进程详细信息,ps -ef | grep 进程PID 或者ps -aux | grep 进程PID 通过执行上面的命令,...就可以看到这个进程详细信息,同时也可以看到这个进程存在目录,进程执行文件、配置文件等信息。...4.查看进程所在目录。...通过ll /proc/进程PID/cwd命令,可以直接查看进程所在目录,这样的话就可以快速定位到进程目录 查找他进程目录之后,就可以对这个应用程序进行一系列操作,比如说重启删除等!

    5.3K20

    统计PHP目录文件数方法

    glob ( string $pattern [, int $flags = 0 ] ) : array glob() 函数依照 libc glob() 函数使用规则寻找所有与 pattern 匹配文件路径...返回一个包含有匹配文件目录数组。如果出错返回 FALSE。...参数flags有效标记有: GLOB_MARK - 在每个返回项目中加一个斜线 GLOB_NOSORT - 按照文件目录中出现原始顺序返回(不排序) GLOB_NOCHECK - 如果没有文件匹配则返回用于搜索模式...GLOB_NOESCAPE - 反斜线不转义元字符GLOB_BRACE - 扩充 {a,b,c} 来匹配 'a','b' 或 'c' GLOB_ONLYDIR - 仅返回与模式匹配目录项 GLOB_ERR...- 停止并读取错误信息(比如说不可读目录),默认情况下忽略所有错误 count()函数计算数组单元数目,或对象属性个数 count ( mixed $array_or_countable

    2.4K20

    DirectAdmin:FTP文件目录说明

    您使用FTP连上空间后,FTP列表会出现以下文件目录: domains目录:网站文件存放目录; public_html目录:快捷目录,可以快速进入您指定网站根目录; backups目录:备份文件目录...(如果没有设置过备份,则无此文件夹); 注意:除了public_html目录文件可以删除外,FTP根目录其他文件以及所有默认目录请不要删除,否则将会影响您正常使用!...如何我们进入domains目录:网站文件存放目录 您进入域名目录后,一般会包含logs(网站日志目录)、private_html(SSL信息目录)、public_html (网站文件存放目录)、public_ftp...(FTP资料目录)、stats(统计目录); imap目录:用户邮件系统文件夹; 我们进入public_html,即可看到自己站点。...目录里默认会存在cgi-bin目录(PAER解析默认目录,已禁止,可删除)、400.shtml、401.shtml、403.shtml、404.shtml、500.shtml、index.html文件

    1.8K20

    浅谈python 调用open()打开文件路径出错原因

    infile.read() print(data) main() 然而结果总报错invaild argument 或者cant found such file *** 查找问题后 发现是由于python...eg: infile =open(r”C:\Users\Spirit\Desktop\bc.txt”,’r’) 好 文件就可以读取了!...补充知识:Python 使用控制台运行带有相对路径指令,是以运行文件为基准,还是以控制台当前路径为基准 答案:以控制台当前路径为基准 如,运行: python scripts/voc_annotation.py.../VOC 这条指令,后面的相对路径是以scripts文件夹为基准路径运行指令,而不是以voc_annotation.py为基准,所以CMD当前路径必须是scripts文件夹 以上这篇浅谈python...调用open()打开文件路径出错原因就是小编分享给大家全部内容了,希望能给大家一个参考。

    1.9K10

    linux中统计目录文件和子目录

    使用ls和grep命令配合 统计当前目录文件个数,不包括目录 > ls -l | grep "^-" | wc -l 统计文件夹下文件个数,包括子文件 > ls -lR | grep "^-" |...wc -l 9188 统计文件夹下目录个数,包括子目录 > ls -lR | grep "^d" | wc -l 540 使用find和wc 统计当前目录下所有的普通文件,包含隐藏文件,不包含子目录文件...> find /etc -maxdepth 1 -type f | wc -l 统计目录文件数量,包含隐藏文件,包含子目录文件 > find /etc -type f | wc -l 统计当前目录目录数...-type f普通文件 -type d目录 使用tree 统计当前目录目录文件数,不包含隐藏文件 > tree -iLf 1 . ./bin ./include ./lib ....linux15个基本ls命令示例 Linux之ls命令 linux35个find案例 linux中计算行数,字数,字符数10个wc命令示例

    3.2K20
    领券