Certbot插件开发-如何获取命令行参数

时间:2019-07-02 10:09:10

标签: lets-encrypt certbot

我正在为Certbot开发一个插件,当他们运行该插件时,我需要从用户那里获取一些参数。我在文档中进行了搜索,找不到为插件代码添加参数的方法。我的插件仅包含一个Authenticator。插件代码类似于下面的

@zope.interface.implementer(interfaces.IAuthenticator)
@zope.interface.provider(interfaces.IPluginFactory)
class Authenticator(common.Plugin):

    def prepare(self):
      pass

    def get_chall_pref(self, domain):
      return [challenges.HTTP01]

   def perform(self, achalls):
     param = #need to get param here

   def cleanup(self, achalls):
     self.reverter.recovery_routine()

1 个答案:

答案 0 :(得分:0)

class Authenticator(common.Plugin):

    @classmethod
    def add_parser_arguments(cls, add):
      add('server-url', help='url or ip of the server')

    def perform(self, achalls):
      param = self.conf('server-url')

与上面的代码一样,add_parser_arguments方法来自IPlugin界面。在该方法中,我们可以定义插件需要哪些参数,并可以对其进行描述。 然后可以将其用作perform函数使用它