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
.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50047d6edddc9cc0b366c2a376eaa5d5220f92ab5162e2469a8d626d3e5e05c2 |
|
MD5 | e15cdda861d08f97c5bf645fc0609a96 |
|
BLAKE2b-256 | fc662e26333dbc8ed6144a01487abdd595e855f5bb35e31e61fbd511d3c1100a |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9438e302932a89e8eea92c094cc4c080af4dd5e8cc899e1b862d1572aa3afb61 |
|
MD5 | f01e5de8aba3b8e6e8994d2f68e7dc49 |
|
BLAKE2b-256 | b6d64cc950c3b01d80b1de02a002f14ac6a7528d72360be5b680c6b2d5cad778 |