Your friendly neighborhood git repository checker. Finds dirty / unpushed repositories and tells you.
$ python checker.py --check-dir ~/repos/
Finding all git directories at/below "/Users/max/repos"...
Checking status of all 119 directories...
100%|████████████████████████| 119/119 [00:01<00:00, 90.15it/s]
- Checked at and below "/Users/max/repos"
- Found 119 git repositories.
The following directories (4) have dirty WDs:
- /Users/max/repos/text-metrics/
- /Users/max/repos/cs231n/
- /Users/max/repos/cls-graphics-prj3/
- /Users/max/repos/git-checker/Fuel your OCD to have all of your git repositories clean at the end of a day.
# install in a fresh virtualenv with python3.6+
$ pip install -r requirements.txtBy default, the checker checks under your home directory (~) and all
subdirectories, then prints a report for you in the console.
$ python checker.py$ python checker.py --help
usage: checker.py [-h] [--check-dir CHECK_DIR]
[--report-choice {print,email,both}]
Your friendly neighborhood git repository checker. Finds dirty / unpushed
repositories and tells you about them.
optional arguments:
-h, --help show this help message and exit
--check-dir CHECK_DIR
directory to check recursively for git repositories
beneath (default: /Users/max)
--report-choice {print,email,both}
Whether to print report to stdout, email a report, or
both (default: print)
You need to create two additional files before you can run with email reports enabled. These live in the root of the repository.
recipient: one line: the email address of who should receive the reportsender: two lines: (1) the username (2) the password of the Gmail account for sending the report
Then, just run
$ python checker.py --report-choice emailThe line below can be added to your
crontabs file to run the git checker daily
at 9pm (0 minutes, 21 hours), where it will look at and below a directory called
~/repos/ and email you the result.
0 21 * * * python /Path/to/checker.py --check-dir ~/repos/ --report-choice email
- Add computer info to summary (useful if running on multiple computers).
- argparse
- pep8
- tests
- travis
- maybe pypi?
- GIFs are cool right?