Bug#901758: diffoscope: leaves progress bar on terminal after completion

Paul Wise pabs at debian.org
Mon Jun 18 03:05:55 BST 2018


Package: diffoscope
Version: 95
Severity: minor

diffoscope leaves a giant progress bar on the terminal after it
completes. It would be nice if the progress bar could disappear after
it has served its purpose. In case the progress bar code you use
doesn't support this, I've included code below from another project
that clears to the end of the line if the terminal supports that and
falls back to overwriting the line with spaces if it does not.

$ touch foo bar

$ diffoscope foo bar
 |#####################################################################################################################################|  100%                             Time: 0:00:00 

try:
    from shutil import get_terminal_size

    def get_columns():
        return get_terminal_size().columns
except ImportError:
    # Python 3.2 compatibility:
    from fcntl import ioctl
    from termios import TIOCGWINSZ
    from struct import unpack

    def get_columns():
        try:
            buf = ioctl(sys.stdout.fileno(), TIOCGWINSZ, ' ' * 4)
            return unpack('hh', buf)[1]
        except IOError:
            return 80

if sys.stdout.isatty():
    from curses import tigetstr, setupterm
    setupterm()
    erase_line = tigetstr('el')

def erase_to_eol_cr(size=0):
    if erase_line:
        sys.stdout.buffer.write(erase_line)
    else:
        width = get_columns()
        print(' ' * (width - size), end='')
    print(end='\r')
    sys.stdout.flush()

-- System Information:
Debian Release: buster/sid
  APT prefers testing-debug
  APT policy: (900, 'testing-debug'), (900, 'testing'), (800, 'unstable-debug'), (800, 'unstable'), (790, 'buildd-unstable'), (700, 'experimental-debug'), (700, 'experimental'), (690, 'buildd-experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 4.16.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8), LANGUAGE=en_AU:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages diffoscope depends on:
ii  libpython3.6-stdlib    3.6.6~rc1-1
ii  python3                3.6.5-3
ii  python3-distro         1.0.1-2
ii  python3-distutils      3.6.5-4
ii  python3-libarchive-c   2.1-3.1
ii  python3-magic          2:0.4.15-1
ii  python3-pkg-resources  39.1.0-1

Versions of packages diffoscope recommends:
ii  abootimg                         0.6-1+b2
ii  acl                              2.2.52-3+b1
ii  apktool                          2.3.3-1
ii  binutils-multiarch               2.30-21
ii  bzip2                            1.0.6-8.1
ii  caca-utils                       0.99.beta19-2+b3
ii  colord                           1.3.3-2
ii  db-util                          5.3.1
ii  default-jdk [java-sdk]           2:1.10-67
ii  default-jdk-headless             2:1.10-67
pn  device-tree-compiler             <none>
pn  docx2txt                         <none>
ii  e2fsprogs                        1.44.2-1
ii  enjarify                         1:1.0.3-4
ii  fontforge-extras                 0.3-4
pn  fp-utils                         <none>
ii  genisoimage                      9:1.1.11-3+b2
ii  gettext                          0.19.8.1-6+b1
ii  ghc                              8.0.2-11
ii  ghostscript                      9.22~dfsg-2.1
ii  giflib-tools                     5.1.4-3
ii  gnumeric                         1.12.39-1
ii  gnupg                            2.2.8-1
ii  imagemagick                      8:6.9.9.39+dfsg-1
ii  imagemagick-6.q16 [imagemagick]  8:6.9.9.39+dfsg-1
ii  jsbeautifier                     1.6.4-7
pn  libarchive-tools                 <none>
ii  llvm                             1:4.0-40
pn  mono-utils                       <none>
pn  odt2txt                          <none>
pn  oggvideotools                    <none>
ii  openjdk-10-jdk [java-sdk]        10.0.1+10-4
ii  openssh-client                   1:7.7p1-2
ii  pdftk                            2.02-4+b2
ii  pgpdump                          0.31-0.2
ii  poppler-utils                    0.63.0-2
pn  procyon-decompiler               <none>
ii  python3-argcomplete              1.8.1-1
ii  python3-binwalk                  2.1.1-16
ii  python3-debian                   0.1.32
pn  python3-defusedxml               <none>
pn  python3-guestfs                  <none>
ii  python3-jsondiff                 1.1.1-2
ii  python3-progressbar              2.3-4
ii  python3-pyxattr                  0.6.0-2+b1
ii  python3-tlsh                     3.4.4+20151206-1+b3
pn  r-base-core                      <none>
ii  rpm2cpio                         4.14.1+dfsg1-3
ii  sng                              1.1.0-1+b1
ii  sqlite3                          3.24.0-1
ii  squashfs-tools                   1:4.3-6
ii  tcpdump                          4.9.2-3
ii  unzip                            6.0-21
ii  vim-common                       2:8.0.1766-1
pn  xmlutils                         <none>
ii  xxd                              2:8.0.1766-1
ii  xz-utils                         5.2.2-1.3

Versions of packages diffoscope suggests:
ii  libjs-jquery  3.2.1-1

-- no debconf information

-- 
bye,
pabs

https://wiki.debian.org/PaulWise
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://alioth-lists.debian.net/pipermail/reproducible-builds/attachments/20180618/56608e46/attachment.sig>


More information about the Reproducible-builds mailing list