I have a common command-line pattern I grew tired of typing. An example
$ mvn verify | tee verify.out
I use this pattern so often as I want to both watch the build on screen, and have a save file to grep when something goes wrong. Sometimes I also find myself telling the computer:
$ mvn verify | tee verify.out $ mv verify.out verify-old.out $ $EDITOR pom.xml $ mvn verify | tee verify.out $ diff verify-old.out verify.out
I want to see what changed in my build. But ... too much typing! So I automated with gee
, a mashup of git
and tee
. You can think of it as source control for <STDOUT>.
Now I can type:
$ gee -o verify.out mvn verify $ gee -g git diff HEAD^ # Did build output change?
How does it work? gee
keeps a git repository in a hidden directory (.gee
), committing program output there using tee
. It follows simple conventions for file name and commit message (changeable with flags), and accepts <STDIN>:
$ mvn verify | gee -o verify.out -m 'After foobar edit'
No comments:
Post a Comment