如何配置 reportbug 使用 gnome-keyring 中的 smtp 密码?

如何配置 reportbug 使用 gnome-keyring 中的 smtp 密码?

配置时reportbug,我可以选择将远程 smtp 服务的密码存储在$HOME/.reportbugrc.如何让它使用 GNOME Web (Epiphany) 或 GNOME 密钥环中的 Evolution 存储的现有密码,以便$HOME/.reportbugrc在 GNOME 密钥环中的密码发生更改时不需要更新?

secret-tools我发现我可以使用包提供的命令从 GNOME 密钥环读取密码libsecret-tools,然后使用命令替换with$(…)调用secret-tools并使用其输出,如下所示:

$ reportbug --smtppasswd=$(secret-tool lookup uri https://webmail.example.invalid)

或这个:

$ reportbug --smtppasswd=$(secret-tool lookup target_origin https://webmail.example.invalid username [email protected])

不幸的是,reportbug似乎没有在 中执行替换~/.reportbugrc。我尝试这样:

smtppasswd "$(secret-tool lookup target_origin https://webmail.example.invalid username [email protected])"

有解决方法吗?

答案1

最终在 中定义了一个别名~\.bash_aliases

alias reportbug-pass='reportbug --smtppasswd="$(secret-tool lookup eds-origin evolution-data-server e-source-uid 7f1e149e069bd66ab5aa1a734baa113943cdf0ee)"'

使用该别名而不是reportbug直接调用会调用已传递给它的 reportbug --smtppasswd。现在,如果我想将 SMTP 密码传递给reportbug,我可以键入该别名。您可以将其他参数传递给它,例如报告的包的名称,就像您所做的那样reportbug

$ reportbug-pass

通过在中定义函数可以实现相同的结果,而不是别名~\.bash_aliases

function reportbug-pass() {
    reportbug --smtppasswd="$(secret-tool lookup eds-origin evolution-data-server e-source-uid pdljjhvbuo6uvc7mydavpmbjqqhxqq2jyhqdndpmcvamknbih8cifgfg)" "$@"
}

在这个函数中,"$@"参数消耗传递给它的参数,例如,您可以传递包的名称。

在这种情况下,无论是别名还是函数,当您从命令行调用它时都会发生针对密钥环的查询。如果密钥环被锁定,您会收到解锁密钥环的常规图形提示。

相关内容