summaryrefslogtreecommitdiff
path: root/plugins/mvn
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/mvn')
-rw-r--r--plugins/mvn/mvn.plugin.zsh63
1 files changed, 63 insertions, 0 deletions
diff --git a/plugins/mvn/mvn.plugin.zsh b/plugins/mvn/mvn.plugin.zsh
index 66ea548ad..71bba454c 100644
--- a/plugins/mvn/mvn.plugin.zsh
+++ b/plugins/mvn/mvn.plugin.zsh
@@ -68,8 +68,66 @@ alias mvntc='mvn tomcat:run'
alias mvntc7='mvn tomcat7:run'
alias mvn-updates='mvn versions:display-dependency-updates'
+#realpath replacement for iOS - not always present
+function _realpath {
+ if [[ -f "$1" ]]
+ then
+ # file *must* exist
+ if cd "$(echo "${1%/*}")" &>/dev/null
+ then
+ # file *may* not be local
+ # exception is ./file.ext
+ # try 'cd .; cd -;' *works!*
+ local tmppwd="$PWD"
+ cd - &>/dev/null
+ else
+ # file *must* be local
+ local tmppwd="$PWD"
+ fi
+ else
+ # file *cannot* exist
+ return 1 # failure
+ fi
+
+ # reassemble realpath
+ echo "$tmppwd"/"${1##*/}"
+ return 1 #success
+}
+
+function __pom_hierarchy {
+ local file=`_realpath "pom.xml"`
+ POM_HIERARCHY+=("~/.m2/settings.xml")
+ POM_HIERARCHY+=("$file")
+ while [ -n "$file" ] && grep -q "<parent>" $file; do
+ ##look for a new relativePath for parent pom.xml
+ local new_file=`grep -e "<relativePath>.*</relativePath>" $file | sed 's/.*<relativePath>//' | sed 's/<\/relativePath>.*//g'`
+
+ ## <parent> is present but not defined. Asume ../pom.xml
+ if [ -z "$new_file" ]; then
+ new_file="../pom.xml"
+ fi
+
+ ## if file exists continue else break
+ new_pom=`_realpath "${file%/*}/$new_file"`
+ if [ -n "$new_pom" ]; then
+ file=$new_pom
+ else
+ break
+ fi
+ POM_HIERARCHY+=("$file")
+ done
+}
function listMavenCompletions {
+ POM_HIERARCHY=()
+ __pom_hierarchy
+
+ profiles=()
+ #current pom profiles
+ for item in ${POM_HIERARCHY[*]}; do
+ profiles=($profiles `[ -e $item ] && cat $item | sed 's/<!--.*-->//' | sed '/<!--/,/-->/d' | grep -e "<profile>" -A 1 | grep -e "<id>.*</id>" | sed 's?.*<id>\(.*\)<\/id>.*?-P\1?'`)
+ done
+
reply=(
# common lifecycle
clean initialize process-resources compile process-test-resources test-compile test package verify install deploy site
@@ -278,7 +336,12 @@ function listMavenCompletions {
cobertura:cobertura
-Dtest=$(if [ -d ./src/test/java ] ; then find ./src/test/java -type f -name '*.java' | grep -v svn | sed 's?.*/\([^/]*\)\..*?-Dtest=\1?' ; fi)
-Dit.test=$(if [ -d ./src/test/java ] ; then find ./src/test/java -type f -name '*.java' | grep -v svn | sed 's?.*/\([^/]*\)\..*?-Dit.test=\1?' ; fi)
+
+ $profiles
)
+
+ unset POM_HIERARCHY
+ unset profiles
}
compctl -K listMavenCompletions mvn mvnw