diff --git a/README.rst b/README.rst index fac36dbd7..4f170f11b 100644 --- a/README.rst +++ b/README.rst @@ -17,11 +17,15 @@ It's all automated: * If domain control has been proven, a certificate will get issued and the tool will automatically install it. -All you need to do is: +All you need to do is:: -:: + user@www:~$ sudo letsencrypt -d www.example.org auth - user@www:~$ sudo letsencrypt -d www.example.org +and if you have a compatbile web server (Apache), Let's Encrypt can +not only get a new certificate, but also deploy it and configure your +server automatically!:: + + user@www:~$ sudo letsencrypt -d www.example.org run **Encrypt ALL the things!** diff --git a/docs/using.rst b/docs/using.rst index f10966602..daa2425ea 100644 --- a/docs/using.rst +++ b/docs/using.rst @@ -54,7 +54,6 @@ Installation virtualenv --no-site-packages -p python2 venv ./venv/bin/pip install -r requirements.txt - sudo ./venv/bin/letsencrypt Usage diff --git a/letsencrypt/client/display/ops.py b/letsencrypt/client/display/ops.py index dc6992c8c..706e8bd7c 100644 --- a/letsencrypt/client/display/ops.py +++ b/letsencrypt/client/display/ops.py @@ -22,7 +22,7 @@ def choose_plugin(prepared, question): :rtype: `~.PluginEntryPoint` """ - opts = [plugin_ep.name_with_description + opts = [plugin_ep.description_with_name + (" [Misconfigured]" if plugin_ep.misconfigured else "") for plugin_ep in prepared] diff --git a/letsencrypt/client/plugins/disco.py b/letsencrypt/client/plugins/disco.py index 50e0bce50..6ab110a20 100644 --- a/letsencrypt/client/plugins/disco.py +++ b/letsencrypt/client/plugins/disco.py @@ -39,9 +39,9 @@ class PluginEntryPoint(object): return self.plugin_cls.description @property - def name_with_description(self): - """Name with description. Handy for UI.""" - return "{0} ({1})".format(self.name, self.description) + def description_with_name(self): + """Description with name. Handy for UI.""" + return "{0} ({1})".format(self.description, self.name) def ifaces(self, *ifaces_groups): """Does plugin implements specified interface groups?""" diff --git a/letsencrypt/client/plugins/disco_test.py b/letsencrypt/client/plugins/disco_test.py index f5ea9e6ee..88aa1275c 100644 --- a/letsencrypt/client/plugins/disco_test.py +++ b/letsencrypt/client/plugins/disco_test.py @@ -52,9 +52,10 @@ class PluginEntryPointTest(unittest.TestCase): def test_description(self): self.assertEqual("Standalone Authenticator", self.plugin_ep.description) - def test_name_with_description(self): - self.assertTrue( - self.plugin_ep.name_with_description.startswith("sa (")) + def test_description_with_name(self): + self.plugin_ep.plugin_cls = mock.MagicMock(description="Desc") + self.assertEqual( + "Desc (sa)", self.plugin_ep.description_with_name) def test_ifaces(self): self.assertTrue(self.plugin_ep.ifaces((interfaces.IAuthenticator,))) diff --git a/letsencrypt/client/tests/display/ops_test.py b/letsencrypt/client/tests/display/ops_test.py index 7c5c1f74f..4716a5b11 100644 --- a/letsencrypt/client/tests/display/ops_test.py +++ b/letsencrypt/client/tests/display/ops_test.py @@ -20,9 +20,9 @@ class ChoosePluginTest(unittest.TestCase): def setUp(self): zope.component.provideUtility(display_util.FileDisplay(sys.stdout)) self.mock_apache = mock.Mock( - name_with_description="a", misconfigured=True) + description_with_name="a", misconfigured=True) self.mock_stand = mock.Mock( - name_with_description="s", misconfigured=False) + description_with_name="s", misconfigured=False) self.mock_stand.init().more_info.return_value = "standalone" self.plugins = [ self.mock_apache,