我的配置从文件读取证书。
这是一种简单的方法:
in { devicesCa = "${/path/to/cert/ca.crt as Text}" }
我还没有找到将/path/to/cert/ca.crt
作为参数传递的方法。例如:
let path = "/path/to/cert/ca.crt"
in { devicesCa = "${${path} as Text}" }
有可能吗?如果没有,什么是已知的解决方法?
答案 0 :(得分:1)
当前无法执行此操作,因为该语言尚不支持“计算导入”(即,依赖于变量的导入)。
简单的解释是:
类型检查先于替换/规范化
...因为计算无类型的表达式可能会导致错误或无限循环
导入解析先于类型检查
...因为无法解析具有未解析导入项的表达式
因此,导入不能依赖替换变量
...因为您最终遇到了一个鸡和蛋的问题,其中导入分辨率取决于规格化,而规格化取决于导入分辨率。
更长的解释是,从技术上讲是可行的,但将需要消除Dhall的相位差异。当前,导入解析阶段在类型检查阶段之前,而在类型检查阶段之前是规范化阶段。实现对计算导入的支持将需要安全地交错这些阶段,这将需要对language standard进行大量重构,并对每个Dhall实现的API进行重构。