Dialog is sometimes ugly #2025

Closed
MCGallaspy opened this Issue Dec 26, 2015 · 13 comments

Comments

Projects
None yet
4 participants

I ran the command ./letsencrypt-auto certonly -d foo.com --test-cert on Ubuntu 14.04.3 and saw the following weird prompt:

ss3

The borders are misaligned/missing, and use unexpected characters.

Owner

pde commented Dec 26, 2015

dialog seems to produce messed up output on some terminals. We haven't been able to work out why, or what to do about it.

@pde pde added the area: ui / ux label Dec 26, 2015

@pde pde changed the title from Enter email address prompt is ugly to Dialog is sometimes ugly Dec 26, 2015

I did a cursory poking around, seems like it might be a bug in zope.component? I'll take a closer look as time permits.

Owner

pde commented Dec 27, 2015

That would be surprising. There's a zope.interface wrapper around all the dialog calls (in order to support the --text command line argument, for instance) but I'd be surprised if zope.component was modifying the calls out to the python dialog module.

Owner

pde commented Dec 27, 2015

That interface is documented here. The dialog / ncurses implementation is here

Contributor

jpluimers commented Oct 13, 2016

There is a similar yast issue on opensuse (https://wiert.me/2016/06/09/tumbleweed-local-console-yast-linedrawing-characters-garbage-after-first-reboot/) for which the workaround is to run /bin/unicode_start once by any user.

Contributor

bmw commented Nov 5, 2016

Due to problems like this (as well as other motivating factors), we've completely removed dialog as a dependency of this project in favor of our text interface for our next release. With this in mind, I'm closing this issue.

@bmw bmw closed this Nov 5, 2016

@bmw bmw added this to the 0.10.0 milestone Nov 5, 2016

Contributor

jpluimers commented Nov 5, 2016

Please post a reference to that new text interface in case other people need to find it after upgrading.

Owner

pde commented Nov 23, 2016

@jpluimers not clear what you're asking for there, but essentially Certbot 0.10.0 is going to behave a lot like certbot -t did for version 0.9.3 and below.

@pde pde removed the has pr label Dec 8, 2016

Contributor

jpluimers commented Dec 19, 2016

Ah. I never noticed there is certbot -t as it's not in the certbot --help list.

I actually like the certbot -t UI. Maybe that is because I'm from the Infocom era (:

Owner

pde commented Dec 19, 2016

I'm pretty sure -t was in the help output for 0.9.3 and below.

Contributor

jpluimers commented Dec 23, 2016

I just discovered I was still at the master branch on commit da3332c which displays itself as 0.9.3 but already has that part from the help removed.

I'm not enough of a git and github person to show that in a commit graph.

I just now did a , but since then I've done git fetch and git pull and it's the same: it shows version letsencrypt 0.9.3 but doesn't show the -t portion of the help:

# git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean
# git rev-parse HEAD
da3332ccfaad08bd9dece68f5ae71308acb1d776
# ./certbot-auto --version
letsencrypt 0.9.3
# ./certbot-auto --help

  certbot-auto [SUBCOMMAND] [options] [-d domain] [-d domain] ...

Certbot can obtain and install HTTPS/TLS/SSL certificates.  By default,
it will attempt to use a webserver both for obtaining and installing the
cert. Major SUBCOMMANDS are:

  (default) run        Obtain & install a cert in your current webserver
  certonly             Obtain cert, but do not install it (aka "auth")
  install              Install a previously obtained cert in a server
  renew                Renew previously obtained certs that are near expiry
  revoke               Revoke a previously obtained certificate
  register             Perform tasks related to registering with the CA
  rollback             Rollback server configuration changes made during install
  config_changes       Show changes made to server config during installation
  plugins              Display information about installed plugins

Choice of server plugins for obtaining and installing cert:

  --apache          Use the Apache plugin for authentication & installation
  --standalone      Run a standalone webserver for authentication
  --nginx           Use the Nginx plugin for authentication & installation
  --webroot         Place files in a server's webroot folder for authentication

OR use different plugins to obtain (authenticate) the cert and then install it:

  --authenticator standalone --installer apache

More detailed help:

  -h, --help [topic]    print this message, or detailed help on a topic;
                        the available topics are:

   all, automation, paths, security, testing, or any of the subcommands or
   plugins (certonly, renew, install, register, nginx, apache, standalone,
   webroot, etc.)

After fetch and pull:

# git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean
# git rev-parse HEAD
839ff7a2657e6854d053573268b0260f6842e2bd
θ100° [root@revue:~/Versioned/certbot] # ./certbot-auto --version
letsencrypt 0.9.3
θ100° [root@revue:~/Versioned/certbot] 2s # ./certbot-auto --help

  certbot-auto [SUBCOMMAND] [options] [-d domain] [-d domain] ...

Certbot can obtain and install HTTPS/TLS/SSL certificates.  By default,
it will attempt to use a webserver both for obtaining and installing the
cert. Major SUBCOMMANDS are:

  (default) run        Obtain & install a cert in your current webserver
  certonly             Obtain cert, but do not install it (aka "auth")
  install              Install a previously obtained cert in a server
  renew                Renew previously obtained certs that are near expiry
  revoke               Revoke a previously obtained certificate
  register             Perform tasks related to registering with the CA
  rollback             Rollback server configuration changes made during install
  config_changes       Show changes made to server config during installation
  plugins              Display information about installed plugins

Choice of server plugins for obtaining and installing cert:

  --apache          Use the Apache plugin for authentication & installation
  --standalone      Run a standalone webserver for authentication
  --nginx           Use the Nginx plugin for authentication & installation
  --webroot         Place files in a server's webroot folder for authentication

OR use different plugins to obtain (authenticate) the cert and then install it:

  --authenticator standalone --installer apache

More detailed help:

  -h, --help [topic]    print this message, or detailed help on a topic;
                        the available topics are:

   all, automation, paths, security, testing, or any of the subcommands or
   plugins (certonly, renew, install, register, nginx, apache, standalone,
   webroot, etc.)
Owner

pde commented Dec 23, 2016

/me nods. Unfortunately you need to do certbot --help all. We have too many flags to show them all by default. But also, we're doing a better job of this in 0.10.0 since we landed #3883 .

Contributor

jpluimers commented Dec 27, 2016

Ah. Now I see. Which means that ideallycertbot --help all is one of the things that really should get hinted in a more elaborate form when performing a plan certbot --help as I would not have thought that would get way more help (:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment