#compdef mix #autoload # ------------------------------------------------------------------------------ # Copyright (c) 2016 Github zsh-users - http://github.com/zsh-users # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of the zsh-users nor the # names of its contributors may be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # ------------------------------------------------------------------------------ # Description # ----------- # # Completion script for Elixir Mix # # Last updated: 23.01.2016 # # ------------------------------------------------------------------------------ # Authors # ------- # # * Han Ngo (https://github.com/tieubao) # # ------------------------------------------------------------------------------ local -a _1st_arguments _1st_arguments=( 'app.start:Start all registered apps' 'archive:List all archives' 'archive.build:Archive this project into a .ez file' 'archive.install:Install an archive locally' 'archive.uninstall:Uninstall archives' 'clean:Delete generated application files' 'cmd:Executes the given command' 'compile:Compile source files' 'compile.protocols:Consolidates all protocols in all paths' 'deps:List dependencies and their status' "deps.clean:Remove the given dependencies' files" 'deps.compile:Compile dependencies' 'deps.get:Get all out of date dependencies' 'deps.unlock:Unlock the given dependencies' 'deps.update:Update the given dependencies' 'do:Executes the tasks separated by comma' 'ecto.create:Create the storage for the repo' 'ecto.drop:Drop the storage for the repo' 'ecto.gen.migration:Generate a new migration for the repo' 'ecto.gen.repo:Generate a new repository' 'ecto.migrate:Run migrations up on a repo' 'ecto.rollback:Rollback migrations from a repo' 'escript.build:Builds an escript for the project' 'gettext.extract:Get text extract' 'gettext.merge:Get text merge' 'help:Print help information for tasks' 'hex:Print hex help information' 'hex.build:Builds a new package version locally' 'hex.config:Read or update hex config' 'hex.docs:Publish docs for package' 'hex.info:Print hex information' 'hex.key:Hex API key tasks' 'hex.outdated:Shows outdated hex deps for the current project' 'hex.owner:Hex package ownership tasks' 'hex.publish:Publish a new package version' 'hex.registry:Hex registry tasks' 'hex.search:Search for package names' 'hex.user:Hex user tasks' 'loadconfig:Loads and persists the given configuration' 'local:List local tasks' 'local.hex:Install hex locally' 'local.public_keys:Public keys' 'local.rebar:Install rebar locally' 'new:Create a new Elixir project' 'phoenix.digest:Digests and compress static files' 'phoenix.gen.channel:Generates a Phoenix channel' 'phoenix.gen.html:Generates controller, model and views for an HTML based resource' 'phoenix.gen.json:Generates a controller and model for a JSON based resource' 'phoenix.gen.model:Generates an Ecto model' 'phoenix.gen.secret:Generates a secret' 'phoenix.new:Create a new Phoenix application' 'phoenix.routes:Prints all routes' 'phoenix.server:Starts applications and their servers' 'profile.fprof:Profiles the given file or expression with fprof' 'run:Run the given file or expression' "test:Run a project's tests" '--help:Describe available tasks' '--version:Prints the Elixir version information' ) __task_list () { local expl declare -a tasks tasks=$(mix --help | grep -v "default task" | awk '{print $2}') _wanted tasks expl 'help' compadd $tasks } local expl local curcontext="$curcontext" state line typeset -A opt_args _arguments -C \ ':command:->command' \ '*::options:->options' case $state in (command) _describe -t commands "mix subcommand" _1st_arguments return ;; (options) case $line[1] in (help) _arguments ':feature:__task_list' esac ;; esac