{"id":20217672,"url":"https://github.com/pforret/progressbar","last_synced_at":"2025-07-27T00:36:27.471Z","repository":{"id":144772802,"uuid":"317137267","full_name":"pforret/progressbar","owner":"pforret","description":"Easy, clever progress bar for (bash) scripts","archived":false,"fork":false,"pushed_at":"2020-12-04T21:55:32.000Z","size":4736,"stargazers_count":22,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-24T13:36:07.557Z","etag":null,"topics":["bash","basher","bashew","percent","progress","progress-bar","scripting","waiting"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pforret.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-30T06:58:42.000Z","updated_at":"2025-03-01T17:33:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"e0abad01-42f3-41b4-90cd-a7bf484f40fa","html_url":"https://github.com/pforret/progressbar","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":"pforret/bashew","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pforret%2Fprogressbar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pforret%2Fprogressbar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pforret%2Fprogressbar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pforret%2Fprogressbar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pforret","download_url":"https://codeload.github.com/pforret/progressbar/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248243497,"owners_count":21071054,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","basher","bashew","percent","progress","progress-bar","scripting","waiting"],"created_at":"2024-11-14T06:35:04.380Z","updated_at":"2025-04-10T15:43:44.962Z","avatar_url":"https://github.com/pforret.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"![GH stars](https://img.shields.io/github/stars/pforret/progressbar)\n![GH tag](https://img.shields.io/github/v/tag/pforret/progressbar)\n![Shellcheck CI](https://github.com/pforret/progressbar/workflows/Shellcheck%20CI/badge.svg)\n![bash_unit CI](https://github.com/pforret/progressbar/workflows/bash_unit%20CI/badge.svg)\n![GH Language](https://img.shields.io/github/languages/top/pforret/progressbar)\n![GH License](https://img.shields.io/github/license/pforret/progressbar)\n[![basher install](https://img.shields.io/badge/basher-install-white?logo=gnu-bash\u0026style=flat)](https://basher.gitparade.com/package/)\n\n\n# pforret/progressbar\n\n![test](progressbar.jpg)\n\nShow a CLI progress bar for long-running programs, like rsync, ffmpeg, tar, zip, wget, ... or your own script\n\n**Add a progressbar to _anything_**\n\n## Installation\n\nwith [basher](https://github.com/basherpm/basher)\n\n\t$ basher install pforret/progressbar\n\nor with `git`\n\n```bash\n$ git clone https://github.com/pforret/progressbar.git\n$ cd progressbar\n$ sudo ln -s $(pwd)/progressbar /usr/local/bin/ # or someone else in your path\n```\n\n## Usage\n\n    Program: progressbar 1.1.0 by peter@forret.com\n    Updated: Dec  1 14:39:22 2020\n    Usage: progressbar [-h] [-q] [-v] [-f] [-l \u003clog_dir\u003e] [-t \u003ctmp_dir\u003e] [-b \u003cbar\u003e] [-c \u003cchar\u003e] \u003caction\u003e \u003cinput\u003e\n    Flags, options and parameters:\n        -h|--help      : [flag] show usage [default: off]\n        -q|--quiet     : [flag] no output [default: off]\n        -v|--verbose   : [flag] output more [default: off]\n        -f|--force     : [flag] do not ask for confirmation (always yes) [default: off]\n        -l|--log_dir \u003cval\u003e: [optn] folder for log files   [default: log]\n        -t|--tmp_dir \u003cval\u003e: [optn] folder for temp files  [default: /tmp/progressbar]\n        -b|--bar \u003cval\u003e: [optn] format of bar: normal/half/long/short  [default: normal]\n        -c|--char \u003cval\u003e: [optn] character to use a filler  [default: #]\n        \u003caction\u003e  : [parameter] lines/seconds/clear/check\n        \u003cinput\u003e   : [parameter] input number or operation identifier     \n                \n## Examples\n\n![Demo](terminalizer/progressbar.gif)\n\n### Simple use: # lines or seconds is known\n```bash\n# when the approx number of lines output is known\n# e.g. first do a rsync --dry-run to check how many files have to be trasferred\n# and then use this number in the actual operation\n$ expected_lines=$(rsync --dry-run \u003cfrom\u003e \u003cto\u003e | awk 'END {print NR}')\n$ rsync \u003cfrom\u003e \u003cto\u003e | progressbar lines \"$expected_lines\"\n\n# similarly: when the approx number of seconds is known\n$ \u003cdo_something_for_1_hour\u003e | progressbar seconds 3600\n```\n\n### Auto-estimate lines/seconds\n```bash\n# the first time the script learns the expected # lines/seconds for operation '40-pings-to-google'\n$ ping -c 40 www.google.com | progressbar lines 40-pings-to-google\n45 lines / 39 secs …\n\n# the following times, it can use this information to show a 0-100% progressbar\n$ ping -c 40 www.google.com | progressbar lines 40-pings-to-google\n[############################--3---------4---------5---------6---------7---------8---------9--------] 28% / 11 secs … \n\n# can also be used with different progress bar format (here: short)\n$ ping -c 40 www.google.com | progressbar -b short lines 40-pings-to-google\n[##-------] 28% / 11 secs … \n\n# use '|' as character for 'done' time\n$ ping -c 40 www.google.com | progressbar -c '|' lines 40-pings-to-google\n[|||||||||||||||||||||||||||||||||||-----4---------5---------6---------7---------8---------9--------] 35% / 14 secs … \n\n\n# for instance, to use it with rsync, first do a --dry-run (rather fast) to get the estimated # of lines\n$ rsync --dry-run -avz source/ destination/ | progressbar lines long-rsync-operation\n\n# and then run the actual operation, which will take much longer, but will output +- the same # of lines\n$ rsync -avz source/ destination/ | progressbar lines long-rsync-operation\n\n```\n   \n    \n## Acknowledgements\n\n* script created with [bashew](https://github.com/pforret/bashew)\n\n\u0026copy; 2020 Peter Forret\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpforret%2Fprogressbar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpforret%2Fprogressbar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpforret%2Fprogressbar/lists"}