reposmon
Monitor a git repository, execute a command when it changes. Basically a polling git-hook for pull.
purpose
Execute a chain of command when a git-repository changes
use case
Run testsets and build docker container after commit [change detected] * Run a testset * Build a docker container * Push to registry
requirements
pip install -r requirements.txt
use
reposmon.py
Monitor a git repository, execute a command when it changes.
Usage:
reposmon.py [options] [--] [<giturl> <command>]
reposmon.py -h | --help
Options:
-h --help Show this screen.
-o --once Run only once.
-v --verbose Verbose mode.
-w --write=<writeymlpath> Write arguments yaml file.
-l --load=<loadymlpath> Load arguments yaml file.
-i --interval=<interval> Seconds between checks [default: 60].
-g --gitfolder=<gitfolder> Folder to check the git repos out [default: .].
-c --cmdfolder=<cmdfolder> Folder from where to run the command [default: .].
example
When in local directory or work-directory changes, execute the command in the local directory or command-directory.
python reposmon.py git@github.com:erikdejonge/reposmon.git "docker build ."
optional
bash alias
alias reposmon="~/[...]/reposmon/reposmon.py
install alias with a workspace checkout of reposmon:
alias reposmon="/Users/rabshakeh/workspace/reposmon/reposmon.py"
commit and sort aliases on osx
On osx the sortalias command sorts all aliasses in .bash_profile
alias sortalias='cat ~/.bash_profile > ~/.bash_profile.backup; cat ~/.bash_profile | grep -v alias | grep -v '\''^$'\'' > ~/.bash_profile_without_alias; alias | grep -v '\''^$'\'' > ~/.bash_profile_only_alias; cat ~/.bash_profile_without_alias > ~/.bash_profile; echo -e '\''\n'\'' >> ~/.bash_profile; cat ~/.bash_profile_only_alias >> ~/.bash_profile; rm ~/.bash_profile_without_alias; rm ~/.bash_profile_only_alias'