2017-08-24 75 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中提供這樣的環境變量。

相關問題