-
-
Save pudney/431818 to your computer and use it in GitHub Desktop.
Zsh Completion Function for Maven
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#compdef mvn | |
_mvn_targets () { | |
local -a commands | |
commands=('jetty\:run:Run Jetty from the current context.' 'validate:validate the project is correct and all necessary information is available' 'compile:compile the source code of the project' 'test:test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed' 'package:take the compiled code and package it in its distributable format, such as a JAR.' 'integration-test:process and deploy the package if necessary into an environment where integration tests can be run' 'verify:run any checks to verify the package is valid and meets quality criteria' 'install:install the package into the local repository, for use as a dependency in other projects locally' 'deploy:done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects.' 'clean:remove all files generated by the previous build') | |
_describe -t commands 'maven targets' commands | |
} | |
_mvn_profiles () { | |
local -a mvn_profiles | |
mvn_profiles=($(sed -n 's/\(.*\)\(<id>\)\([[:graph:]]*\)\(<\/id>\)/\3/p' < ./pom.xml)) | |
_describe -t mvn_profiles 'maven profiles' mvn_profiles | |
} | |
_mvn_defines () { | |
local -a commands | |
commands=('skipTests=true:Skips the Tests.' 'dev=true:Sets the Dev Flag') | |
_describe -t commands 'maven variables' commands | |
} | |
local curcontext=$curcontext ret=1 | |
if [[ $words[1] = mvn ]] | |
then | |
_arguments '-P:Set Profiles:_mvn_profiles' \ | |
'-D:Set Environment Variables:_mvn_defines' \ | |
'*:foo:_mvn_targets' | |
else | |
_call_function ret _$words[1] | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi, I have started writing a full completion function for Maven here: https://github.com/zsh-users/zsh-completions/blob/master/_mvn