Basic command completion for middleman tool.

This commit is contained in:
Jozef Izso 2013-08-18 17:42:41 +02:00
parent 662229f6f0
commit 4963f12ff3
1 changed files with 136 additions and 0 deletions

136
src/_middleman Normal file
View File

@ -0,0 +1,136 @@
#compdef middleman
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for middleman (http://middlemanapp.com/)
# Includes commands from middleman-blog and middleman-deploy extesions.
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Jozef Izso (https://github.com/jozefizso)
#
# ------------------------------------------------------------------------------
local ret=1 state
local -a common_ops
common_ops=(
"--help[Display help]"
)
typeset -A opt_args
_arguments \
':subcommand:->subcommand' \
$common_ops \
'*::options:->options' && ret=0
case $state in
subcommand)
local -a subcommands
subcommands=(
"article:Create a new blog article"
"build:Builds the static site for deployment"
"console:Start an interactive console in the context of your Middleman application"
"deploy:Deploy a middleman built site over rsync, ftp, sftp, or git (e.g. gh-pages on github)."
"extension:Create Middleman extension scaffold"
"init:Create new project"
"server:Start the preview server"
"upgrade:Upgrade installed bundle"
"version:Show version"
)
_describe -t subcommands 'middleman subcommand' subcommands && ret=0
;;
options)
local -a args
args=(
$common_ops
)
local -a help
help=(
"--help[Display help information]"
)
case $words[1] in
article)
args=(
{-d,--date}"[The date to create the post with (defaults to now)]:date"
)
;;
build)
args=(
"--clean[Remove orphaned files from build (Default: true)]"
"--no-clean[Disable removing orphaned files from build]"
{-g,--glob}"[Build a subset of the project]:glob"
"--verbose[Print debug messages]"
"--instrument[Print instrument messages]:instrument"
"--profile[Generate profiling report for the build]"
)
;;
console)
args=(
{-e,--environment}"[The environment Middleman will run under (Default: development)]:environment"
"--verbose[Print debug messages]"
)
;;
deploy)
args=(
{-b,--build-before}"[Run \`middleman build\` before the deploy step]"
)
;;
extension)
args=(
"--git[Default: true]"
)
;;
init)
args=(
{-T,--template}"[Use a project template: default, html5, mobile, smacss, empty. (Default: default)]:template"
"--css-dir [The path to the css files]:css_dir"
"--js-dir [The path to the javascript files]:js_dir"
"--images-dir [The path to the image files]:images_dir"
"--rack [Include a config.ru file]"
"--skip-gemfile [Don't create a Gemfile]"
"--skip-bundle [Don't run bundle install]"
"--skip-git [Skip Git ignores and keeps]"
)
;;
server)
args=(
{-e,--environment}"[The environment Middleman will run under (Default: development)]:environment"
{-h,--host}"[Bind to HOST address (Default: 0.0.0.0)]:host"
{-p,--port}"[The port Middleman will listen on (Default: 4567)]:port"
"--verbose [Print debug messages]"
"--instrument [Print instrument messages]:instrument"
"--disable-watcher [Disable the file change and delete watcher process]"
"--profile [Generate profiling report for server startup]"
"--reload-paths [Additional paths to auto-reload when files change]:reload_paths"
"--force-polling [Force file watcher into polling mode]"
)
;;
upgrade)
args=()
;;
version)
args=()
;;
esac
_arguments $args && ret=0
;;
esac
return ret