2017-08-24 77 views
1

如果我运行如何为'stack sdist'设置'no-tty'而不禁用'gpg'一般?

stack sdist --sign ... 

我得到

Error signing with GPG 
gpg: cannot open `/dev/tty': Device not configured 

unless I place

no-tty 

在我~/.gnupg/gpg.conf

但是,如果我这样做,那么

gpg -e ... 

gpg: Sorry, no terminal at all requested - can't get input 

是否有配置gpgstack sdist,这样我可以使用no-tty后者而非前者的方法吗?例如,我可以在运行stack sdist的项目中使用本地gpg.conf?或者是否有命令行参数可以提供给gpgstack sdist,它们会有相同的效果?也许有一种方法可以将--no-tty通过stack sdist传递给基础GPG?


作为一个附加的约束,我需要这在一个IDE我在哪里局限于单一的shell命令工作(所以我不能批量这或写一个小的脚本来做到这一点):

enter image description here

回答

1

望着source code of stack's GnuPG interface,存在栈没有可能添加的GnuPG参数:

(_hIn,hOut,hErr,process) <- 
    gpg 
     [ "--output" 
     , "-" 
     , "--use-agent" 
     , "--detach-sig" 
     , "--armor" 
     , toFilePath path] 

鉴于有微软添加支持一个适当的TTY变量是不现实的,你可能是最好的堆栈改变。如果堆栈的--no-terminal参数设置了错误,我会考虑不提供--no-tty作为GnuPG参数。此外,将自定义选项传递给GnuPG的方式似乎是支持和功能请求的合理之举。

作为一种解决方法,您应该能够在stack --sign左右提供某种包装批处理脚本。一个可能的解决方案是设置一个GNUPGHOME环境变量指向一个特定于堆栈的GnuPG主目录副本,其中包括no-tty作为配置选项(因此您有一个用于日常工作的“默认”GnuPG主目录,和一个特定的代码签名)。您也可以在IDE中提供这样的环境变量。

相关问题