Skip to main content

Adds progress bars to any file-reading tool (gzip, md5sum, etc)

Project description

Spybar

Spybar is a Linux CLI utility that adds a progress bar to any tool reading a file. By example, it can create a progress bar for gzip, md5sum and other traditional utilities which don't display their progress.

Simply prefix any command with spybar.

spybar gzip that_big_file.dat

Or, if the process is already running, attach using its PID. Suppose that you want to attach to process 42:

spybar -a 42

FAQ

Can you pipe it?

Yes you can, the progress bar happens on stderr

spybar gzip -c big_dump.sql > big_dump.sql.gz

Can it support Win/OSX?

Unfortunately there is no known way to do so. This utility relies on psutil's Process.open_files() abstraction so whenever this abstraction gives you the position for other platforms than Linux then Spybar will automatically work on those.

(By automatically I mean there is maybe a few adjustments needed on Unix-specific assumptions but it's most likely a just few lines to change).

How does it work?

If you navigate to the /proc file system you will see that for each process you not only get the list of open files (in /proc/XX/fd) but also meta-information about those files (in /proc/XX/fdinfo).

This way Spybar will look for files open in read mode by your process and then look at the current position of the file pointer, which once compared to the file size gives you the relative progress.

Does it always work?

Of course not, but the use case of binaries reading a file from the beginning to the end is fairly common. Who never waited in front of a gzip, xz, tar or md5sum wondering if they should go have a coffee or if it's just 2 seconds more?

In the end this is just guessing but it works in many situations.

Thanks

I would like to thank:

  • Whomever put this feature in the Linux kernel
  • The psutil maintainers
  • The tqdm maintainers
  • The poetry maintainers
  • The pytest maintainers
  • The apt maintainers from whom I stole the VT100 progress bar logic
  • All open-source contributors thanks to whom this software was easy to write

License

This software is released under the terms of the WTFPL.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spybar-0.1.0.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

spybar-0.1.0-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file spybar-0.1.0.tar.gz.

File metadata

  • Download URL: spybar-0.1.0.tar.gz
  • Upload date:
  • Size: 8.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.0 CPython/3.8.0 Linux/4.15.0-58-generic

File hashes

Hashes for spybar-0.1.0.tar.gz
Algorithm Hash digest
SHA256 50047d6edddc9cc0b366c2a376eaa5d5220f92ab5162e2469a8d626d3e5e05c2
MD5 e15cdda861d08f97c5bf645fc0609a96
BLAKE2b-256 fc662e26333dbc8ed6144a01487abdd595e855f5bb35e31e61fbd511d3c1100a

See more details on using hashes here.

File details

Details for the file spybar-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: spybar-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.0 CPython/3.8.0 Linux/4.15.0-58-generic

File hashes

Hashes for spybar-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9438e302932a89e8eea92c094cc4c080af4dd5e8cc899e1b862d1572aa3afb61
MD5 f01e5de8aba3b8e6e8994d2f68e7dc49
BLAKE2b-256 b6d64cc950c3b01d80b1de02a002f14ac6a7528d72360be5b680c6b2d5cad778

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page