使用Shake,我想定义一个依赖于一堆可执行文件的规则(例如exe
,dll
等)。但是,在使用它们之前,需要对它们进行数字签名。自签署"实际上并没有生成新文件,我怎样才能确保我的规则仅仅取决于 之后的文件?
修改:消除歧义。我的规则生成了一些这些文件,但不是全部。有些是第三方,是我们存储库的一部分。所以我需要在签名之后依赖那些静态文件。
答案 0 :(得分:1)
一种简单的方法是让签名步骤先进行复制,所以:
"signed//*" *> \out -> do
copyFile ("unsigned" </> dropDirectory1 out) out
cmd "signer" out
另一种方法是在签名时生成一个文件,用作提醒文件已签名的文件:
"programs//*.key" *> \out -> do
writeFile' out ""
cmd "signer" $ dropExtension out
第二种表述是不鼓励的,因为一般规则不应该修改其他规则产生的值 - 很容易过度重建(我想你可能会在这里)。
如果您有额外的文件,对于您生成的exes,只需一步生成并签名 - 如果您生成文件然后编辑其属性(Windows上为editbin
),这是一种相当常见的模式。对于你没有生成的文件,你可以在签入它们之前签名,但是修改repo中的源文件(这是第三方的东西看起来像)可能是一个坏主意,所以副本可能更好。