configs/home/.zsh-server/plugins/zsh-completions/src/_middleman

157 lines
5.1 KiB
Plaintext

#compdef middleman
# ------------------------------------------------------------------------------
# Copyright (c) 2013 Jozef Izso, MIT License
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for middleman (http://middlemanapp.com/)
# Includes commands from middleman-blog and middleman-deploy extensions.
#
# ------------------------------------------------------------------------------
# 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