f4b2e460c77b79f99831cd048eb0004059c96370
- Author
- Marc Cornellà <marc.cornella@live.com>
- Committer
- Marc Cornellà <marc.cornella@live.com>
- Date
Message
Diff
This diff is truncated to protect this page.
1diff --git a/plugins/mvn/mvn.plugin.zsh b/plugins/mvn/mvn.plugin.zsh
2index 71bba454c98a919ca27731cdc62f0614e121bbc6..01aef814d59702199f30a724eb486907719d6662 100644
3--- a/plugins/mvn/mvn.plugin.zsh
4+++ b/plugins/mvn/mvn.plugin.zsh
5@@ -68,64 +68,43 @@ alias mvntc='mvn tomcat:run'
6 alias mvntc7='mvn tomcat7:run'
7 alias mvn-updates='mvn versions:display-dependency-updates'
8
9-#realpath replacement for iOS - not always present
10-function _realpath {
11- if [[ -f "$1" ]]
12- then
13- # file *must* exist
14- if cd "$(echo "${1%/*}")" &>/dev/null
15- then
16- # file *may* not be local
17- # exception is ./file.ext
18- # try 'cd .; cd -;' *works!*
19- local tmppwd="$PWD"
20- cd - &>/dev/null
21- else
22- # file *must* be local
23- local tmppwd="$PWD"
24- fi
25- else
26- # file *cannot* exist
27- return 1 # failure
28- fi
29
30- # reassemble realpath
31- echo "$tmppwd"/"${1##*/}"
32- return 1 #success
33-}
34+function listMavenCompletions {
35+ local file new_file
36+ local -a profiles POM_FILES
37+
38+ # Root POM
39+ POM_FILES=(~/.m2/settings.xml)
40
41-function __pom_hierarchy {
42- local file=`_realpath "pom.xml"`
43- POM_HIERARCHY+=("~/.m2/settings.xml")
44- POM_HIERARCHY+=("$file")
45- while [ -n "$file" ] && grep -q "<parent>" $file; do
46- ##look for a new relativePath for parent pom.xml
47- local new_file=`grep -e "<relativePath>.*</relativePath>" $file | sed 's/.*<relativePath>//' | sed 's/<\/relativePath>.*//g'`
48+ # POM in the current directory
49+ if [[ -f pom.xml ]]; then
50+ local file=pom.xml
51+ POM_FILES+=("${file:A}")
52+ fi
53
54- ## <parent> is present but not defined. Asume ../pom.xml
55- if [ -z "$new_file" ]; then
56+ # Look for POM files in parent directories
57+ while [[ -n "$file" ]] && grep -q "<parent>" "$file"; do
58+ # look for a new relativePath for parent pom.xml
59+ new_file=$(grep -e "<relativePath>.*</relativePath>" "$file" | sed -e 's/.*<relativePath>\(.*\)<\/relativePath>.*/\1/')
60+
61+ # if <parent> is present but not defined, assume ../pom.xml
62+ if [[ -z "$new_file" ]]; then
63 new_file="../pom.xml"
64 fi
65
66- ## if file exists continue else break
67- new_pom=`_realpath "${file%/*}/$new_file"`
68- if [ -n "$new_pom" ]; then
69- file=$new_pom
70- else
71+ # if file doesn't exist break
72+ file="${file:h}/${new_file}"
73+ if ! [[ -e "$file" ]]; then
74 break
75 fi
76- POM_HIERARCHY+=("$file")
77- done
78-}
79
80-function listMavenCompletions {
81- POM_HIERARCHY=()
82- __pom_hierarchy
83+ POM_FILES+=("${file:A}")
84+ done
85
86- profiles=()
87- #current pom profiles
88- for item in ${POM_HIERARCHY[*]}; do
89- 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?'`)
90+ # Get profiles from found files
91+ for file in $POM_FILES; do
92+ [[ -e $file ]] || continue
93+ profiles+=($(sed 's/<!--.*-->//' "$file" | sed '/<!--/,/-->/d' | grep -e "<profile>" -A 1 | grep -e "<id>.*</id>" | sed 's?.*<id>\(.*\)<\/id>.*?-P\1?'))
94 done
95
96 reply=(
97@@ -339,9 +318,6 @@ function listMavenCompletions {
98
99 $profiles
100 )
101-
102- unset POM_HIERARCHY
103- unset profiles
104 }