Toolbox for the busy developer
I haven't really ever been much of an IDE buff. I'm told that both Eclipse, Netbeans and IntelliJ does all of the following in smart(er) ways. I just really like output that is pipeable. The following should not be viewed as best practices in any way. They are just the tools that help me when I'm in a tight spot. If you have improvements, even if they are of the form "Steen, get into the 21st century already", please leave them in the comments.
Grep, the friend in need
For finding the dependencies of all the protocolterminator submodules in one go. Without the version numbers
find . -name "pom.xml" | xargs grep -A 2 "<dependency>" | grep -A 1 -E "<groupId>eu.europa.ec.joinup.ecc</groupId>" | egrep -o "artifactId.*" | sort | uniq
Git command line stuff
I keep all the OpenNCP components in a separate directory. This allows me to do git operations on all of them in one go:
Checking the status of all git repositories:
back=`pwd`; for d in `find . -type d -name .git`; do cd "$d/.."; pwd; git st ;echo "\n"; cd $back ; done
Creating a release branch on all git repositories:
(a variation on the theme above)
back=`pwd`; for d in `find . -type d -name .git`; do cd "$d/.."; pwd; git-flow release start 1.1.0; cd $back ; done
please observe that the above command might exit with errors for some of the repositories. For those wishing to anticipate this, they can run
back=`pwd`; for d in `find . -type d -name .git`; do cd "$d/.."; pwd; git co develop; cd $back ; done
before hand.
Checking the if branches are out of date:
Another variation on the theme is viewing which of your local branches need pull
-ing:
back=`pwd`; for d in `find . -type d -name .git`; do cd "$d/.."; pwd; git remote show origin | grep out\ of\ date; cd $back ; done
which can conveniently be accomplished by:
back=`pwd`; for d in `find . -type d -name .git`; do cd "$d/.."; pwd; git co develop; git pull; cd $back ; done
Rudimentary SLOC count (java files only)
find . -name "*.java" | xargs egrep -v -h "^\s*[//|/*|*/]" | egrep -v "^\s*$" | wc -l
SED for the win!
I never can get maven to do a recursive mvn versions:set
so instead I used find
combined with sed
:
find . -name "pom.xml" -exec sed -i 's/-SNAPSHOT//g' {} \;