Merge pull request #163 from farseer90718/master

add jekyll completion
This commit is contained in:
Julien Nicoulaud 2013-08-08 07:13:19 -07:00
commit a427edeaa4
1 changed files with 145 additions and 0 deletions

145
src/_jekyll Normal file
View File

@ -0,0 +1,145 @@
#compdef jekyll
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for jekyll(http://jekyllrb.com)
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * farseer90718 (https://github.com/farseer90718)
#
# ------------------------------------------------------------------------------
local ret=1 state
local -a common_ops
common_ops=(
{-v,--version}"[Display version information]"
{-h,--help}"[Display help documentation]"
{-p,--plugins}"[Plugins directory (defautls to ./_plugins)]: :_directories"
{-s,--source}"[Source directory (defaults to ./)]: :_directories"
{-d,--destination}"[Destination directory (defautls to ./_site)]: :_directories"
"--layouts=[Layouts directory (defaults to ./_layouts)]: :_directories"
"--safe=[Safe mode (defaults to false)]"
)
typeset -A opt_args
_arguments \
':subcommand:->subcommand' \
$common_ops \
'*::options:->options' && ret=0
case $state in
subcommand)
local -a subcommands
subcommands=(
"build:Build your site"
"docs:Launch local server with docs for jekyll"
"doctor:Search site and print specific deprecation warnings"
"help:Dislplay global or [command] help documentation"
"import:Import your old blog to Jekyll"
"new:Creates a new Jekyll site scaffold in PATH"
"serve:Serve your stie locally"
)
_describe -t subcommands 'jekyll subcommand' subcommands && ret=0
;;
options)
local -a args
args=(
$common_ops
)
local -a config
config=(
"--config[Custome configuration file]: :_files"
)
local -a help
help=(
{-h,--help}"[Display help information]"
)
local -a build
build=(
{-w,--watch}"[Watch for changes and rebuild]"
"--limit_posts[Limits the number of posts to parse and publish]"
"--future[Publishes posts with a future date]"
"--lsi[Use LSI for improved related posts]"
"--drafts[Render posts in the _drafts folder]"
)
case $words[1] in
help)
args=()
compadd "$@" build docs doctor help import new serve
;;
build)
args+=(
$build
$config
)
;;
docs)
args=(
{-p,--port}"[Port to listen on]: :_ports"
{-u,--host}"[Host to bind to]: :_hosts"
$help
)
;;
doctor)
args+=(
$config
)
;;
import)
args=(
"--source[Source file or URL to migrate from]:url"
"--file[File to migrate from]: :_files"
"--dbname[Database name to migrate from]:database"
"--user[Username to use when migrating]:user"
"--pass[Password to use when migrating]:password"
"--host[Host address to use when migrating]:url"
$help
)
;;
new)
args=(
": :_directories"
"--force[Force creation even if PATH already exists]"
"--blank[Creates scaffolding but with empty files]"
$help
)
;;
serve)
args+=(
$build
$config
{-P,--port}"[Port to listen on]: :_posts"
{-H,--host}"[Host to bind to]: :_hosts"
{-b,--baseurl}"[Base URL]:url"
)
esac
_arguments $args && ret=0
;;
esac
return ret
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et