Author: ludovicc-guest Date: 2010-04-06 22:12:35 +0000 (Tue, 06 Apr 2010) New Revision: 12034
Added: trunk/maven2/debian/patches/mvnDebug-cmd.patch Modified: trunk/maven2/debian/bash_completion.d/maven2 trunk/maven2/debian/changelog trunk/maven2/debian/patches/series Log: * Improve bash completion for maven2, -D options are better handled for plugins (for example, mvn install:install-file -DpomFile=...) * Apply patch from Heikki Henriksen <heik...@gmail.com> to fix mvnDebug command. Thanks Heikki! (Closes: #561596) Modified: trunk/maven2/debian/bash_completion.d/maven2 =================================================================== --- trunk/maven2/debian/bash_completion.d/maven2 2010-04-06 21:05:59 UTC (rev 12033) +++ trunk/maven2/debian/bash_completion.d/maven2 2010-04-06 22:12:35 UTC (rev 12034) @@ -393,6 +393,11 @@ for x in `find -type f -name pom.xml -or -name *.pom` ; do echo ${x#./} ; done } +__mvnlist_jars () +{ + for x in `find -type f -name *.jar` ; do echo ${x#./} ; done +} + __mvnlist_prefix () { local pfx=$1 IFS=' '$'\t'$'\n' @@ -502,7 +507,7 @@ __mvncomp "${__mvnpackaging}" "$(__mvnprefix_equals $cur)" "${cur#*=}" ;; *) - local options="artifactId= classifier= description= file=press file=tab generatePom=false groupId= pomFile=press pomFile=tab repositoryId= + local options="artifactId= classifier= description= file=press file=tab generatePom=true groupId= pomFile=press pomFile=tab repositoryId= repositoryLayout=legacy uniqueVersion=false url= version=" options="$options $(__mvnlist_prefix 'packaging=' ${__mvnpackaging} )" __mvncomp "$options" "-D" "${cur}" @@ -510,6 +515,35 @@ esac } +__mvninstall_install_file () +{ + local cur="${COMP_WORDS[COMP_CWORD]}" + cur="${cur#-D}" + case "${cur}" in + file=*) + COMPREPLY=( $( compgen -f -P "$(__mvnprefix_equals $cur)" -- "${cur#*=}" ) ) + ;; + pomFile=*) + __mvncomp "$(__mvnlist_poms)" "$(__mvnprefix_equals $cur)" "${cur#*=}" + ;; + sources=*) + __mvncomp "$(__mvnlist_jars)" "$(__mvnprefix_equals $cur)" "${cur#*=}" + ;; + javadoc=*) + __mvncomp "$(__mvnlist_jars)" "$(__mvnprefix_equals $cur)" "${cur#*=}" + ;; + packaging=*) + __mvncomp "${__mvnpackaging}" "$(__mvnprefix_equals $cur)" "${cur#*=}" + ;; + *) + local options="artifactId= classifier= file=press file=tab generatePom=true groupId= pomFile=press pomFile=tab + createChecksum=true url= version= sources=press sources=tab javadoc=press javadoc=tab" + options="$options $(__mvnlist_prefix 'packaging=' ${__mvnpackaging} )" + __mvncomp "$options" "-D" "${cur}" + ;; + esac +} + __mvnarchetype_generate () { local cur="${COMP_WORDS[COMP_CWORD]}" @@ -622,10 +656,14 @@ _mvn () { - local i prev c=1 cmd option optionArg=0 + local i prev c=1 cmd option optionArg=0 cmdcomplete=0 + local cur="${COMP_WORDS[COMP_CWORD]}" COMPREPLY=() - while [ $c -lt $COMP_CWORD ]; do + #echo " cur $cur" + + # discover the options and the command + while [ $c -le $COMP_CWORD ]; do prev=$i i="${COMP_WORDS[c]}" c=$((++c)) @@ -635,13 +673,54 @@ optionArg=1 continue; fi + + #echo "c $c i '$i'" + + if [[ $cmdcomplete == -3 ]]; then + cmdcomplete=1 # complete command + break; + fi + + if [[ "$i" == "" ]]; then + if [[ $cmd ]]; then + cmdcomplete=1 # complete command + break; + fi + continue + fi + + if [[ "$i" == ":" ]]; then + if [[ $cmd ]]; then + cmdcomplete=$((cmdcomplete-1)) + cmd="${cmd}:" + fi + continue + fi + case "$i" in --version|--help) return ;; -*) option="$i" ;; - *) cmd="$i"; break ;; + *) if [[ ! $cmd ]]; then + # incomplete command + cmdcomplete=$((cmdcomplete-1)) + cmd="$i" + local next=$c + if [[ $next -lt $COMP_CWORD ]]; then + #echo "next ${COMP_WORDS[next]}" + if [[ "${COMP_WORDS[next]}" != ":" ]]; then + break + fi + fi + else + cmdcomplete=$((cmdcomplete-1)) + cmd="$cmd$i" + fi + ;; esac done + #echo "cmd $cmd cmdcomplete $cmdcomplete" + if [[ ! $cmd && $option && ($optionArg == 0) ]]; then case "$option" in --file) @@ -657,7 +736,6 @@ return ;; --projects) - local cur="${COMP_WORDS[COMP_CWORD]}" case "${cur}" in *,*) __mvncomp "$(__mvnlist_projects)" "$(__mvnprefix_comma $cur)" "${cur#*,}" @@ -677,21 +755,37 @@ esac fi + if [ $cmdcomplete -lt 0 ]; then + #echo "incomplete cmd $cmd" + case "${cmd}" in + *:) + local plugin="${cmd%%:}:" + #echo "plugin $plugin" + __mvncomp "$(__mvnlist_goals $plugin)" "$(__mvnprefix_colon $cmd)" "" + ;; + *:*) + local plugin="${cmd%%:*}:" + #echo "plugin $plugin" + __mvncomp "$(__mvnlist_goals $plugin)" "$(__mvnprefix_colon $cmd)" "${cmd#*:}" + ;; + *) __mvncomp "${__mvnphases} ${__mvnall_plugin_and_goals}" ;; + esac + return + fi + if [ -z "$cmd" ]; then - local cur="${COMP_WORDS[COMP_CWORD]}" + #echo "empty cmd cur $cur" case "${cur}" in -D*=*) COMPREPLY=() ;; -*) __mvncomp "${__mvnopts} ${__mvnparams}" ;; --*) __mvncomp "${__mvnopts}" ;; - *:*) - local plugin="${cur%%:*}:" - __mvncomp "$(__mvnlist_goals $plugin)" "$(__mvnprefix_colon $cur)" "${cur#*:}" - ;; *) __mvncomp "${__mvnphases} ${__mvnall_plugin_and_goals}" ;; esac return fi + #echo "cmd $cmd" + case "$cmd" in *:help) local plugin="${cmd%%:*}:" @@ -710,6 +804,7 @@ dependency:purge-local-repository) __mvndependency_purge_local_repository ;; dependency:analyze) __mvndependency_analyze ;; dependency:analyze-dep-mgt) __mvndependency_analyze_dep_mgt ;; + install:install-file) __mvninstall_install_file ;; release:prepare) __mvnrelease_prepare ;; scm:checkin) __mvnscm_checkin ;; *) Modified: trunk/maven2/debian/changelog =================================================================== --- trunk/maven2/debian/changelog 2010-04-06 21:05:59 UTC (rev 12033) +++ trunk/maven2/debian/changelog 2010-04-06 22:12:35 UTC (rev 12034) @@ -1,3 +1,12 @@ +maven2 (2.2.1-4) unstable; urgency=low + + * Improve bash completion for maven2, -D options are better + handled for plugins (for example, mvn install:install-file -DpomFile=...) + * Apply patch from Heikki Henriksen <heik...@gmail.com> to + fix mvnDebug command. Thanks Heikki! (Closes: #561596) + + -- Ludovic Claude <ludovic.cla...@laposte.net> Tue, 06 Apr 2010 20:38:51 +0200 + maven2 (2.2.1-3) unstable; urgency=low * Team Upload. Added: trunk/maven2/debian/patches/mvnDebug-cmd.patch =================================================================== --- trunk/maven2/debian/patches/mvnDebug-cmd.patch (rev 0) +++ trunk/maven2/debian/patches/mvnDebug-cmd.patch 2010-04-06 22:12:35 UTC (rev 12034) @@ -0,0 +1,103 @@ +--- old/apache-maven/src/bin/mvnDebug 2009-12-18 15:08:02.000000000 +0100 ++++ new/apache-maven/src/bin/mvnDebug 2009-12-18 15:07:34.000000000 +0100 +@@ -72,9 +72,80 @@ + ;; + esac + ++if [ -z "$M2_HOME" ] ; then ++ M2_HOME="/usr/share/maven2" ++fi ++ ++# Debian patch - search for preferred JRE ++ ++# Given the "java" executable as an argument, find JAVA_HOME ++find_java() { ++ # First check if it is a JDK in the /usr/lib/jvm directory, or a symlink there. ++ # The test is somewhat complicated due to the different ways the Java implementations ++ # are set up with the alternatives system ++ # e.g. ++ # /usr/bin/java -> /etc/alternatives/java -> /usr/lib/jvm/java-1.5.0-sun/jre/bin/java ++ # or ++ # /usr/bin/java -> /etc/alternatives/java -> /usr/lib/jvm/java-gcj/bin/java -> /usr/bin/gij-4.2 ++ ++ JAVA_HOME=$1 ++ while true ; do ++ case $JAVA_HOME in ++ /usr/lib/jvm/*) ++ # Found it! Return the correct paremt directory. ++ ++ JAVA_HOME=`echo $JAVA_HOME | sed 's:\(/usr/lib/jvm/[^/]*\).*:\1:'` ++ return ++ ;; ++ *) ;; ++ esac ++ ++ if [ -h $JAVA_HOME ] ; then ++ JAVA_HOME=`readlink $JAVA_HOME` ++ else ++ break ++ fi ++ done ++ ++ # Not found in the Debian alternatives system, so presumably ++ # it is a user-installed JDK/JRE. Might as well be helpful ++ # and try to find JAVA_HOME. ++ ++ # First try for a JDK: ++ JAVA_HOME=`readlink -e $1` ++ while [ `dirname $JAVA_HOME` != / ]; do ++ if [ -e $JAVA_HOME/lib/tools.jar ]; then ++ return ++ fi ++ ++ JAVA_HOME=`dirname $JAVA_HOME` ++ done ++ ++ # If we get here we did not find a JDK. Search again for a JRE: ++ JAVA_HOME=`readlink -e $1` ++ while [ `dirname $JAVA_HOME` != / ]; do ++ if [ -e $JAVA_HOME/bin/java ]; then ++ return ++ fi ++ ++ JAVA_HOME=`dirname $JAVA_HOME` ++ done ++ ++ # Nothing found; leave blank ++ JAVA_HOME= ++} ++ ++ + if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` ++ else ++ # Debian patch - search for preferred JRE ++ if [ -n "$JAVACMD" ] ; then ++ find_java "$JAVACMD" ++ else ++ find_java `which java` ++ fi + fi + fi + +@@ -132,7 +203,7 @@ + JAVACMD="$JAVA_HOME/bin/java" + fi + else +- JAVACMD=java ++ JAVACMD="`which java`" + fi + fi + +@@ -161,9 +232,8 @@ + exec "$JAVACMD" \ + $MAVEN_OPTS \ + $MAVEN_DEBUG_OPTS \ +- -classpath "${M2_HOME}"/boot/classworlds-*.jar \ ++ -classpath "${M2_HOME}"/boot/classworlds.jar \ + "-Dclassworlds.conf=${M2_HOME}/bin/m2.conf" \ + "-Dmaven.home=${M2_HOME}" \ + ${CLASSWORLDS_LAUNCHER} $QUOTED_ARGS + +- Modified: trunk/maven2/debian/patches/series =================================================================== --- trunk/maven2/debian/patches/series 2010-04-06 21:05:59 UTC (rev 12033) +++ trunk/maven2/debian/patches/series 2010-04-06 22:12:35 UTC (rev 12034) @@ -1,3 +1,4 @@ mvn-cmd.patch +mvnDebug-cmd.patch build.patch pom.patch _______________________________________________ pkg-java-commits mailing list pkg-java-comm...@lists.alioth.debian.org http://lists.alioth.debian.org/mailman/listinfo/pkg-java-commits