146 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
			
		
		
	
	
			146 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
| #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:Display global or [command] help documentation"
 | |
|       "import:Import your old blog to Jekyll"
 | |
|       "new:Creates a new Jekyll site scaffold in PATH"
 | |
|       "serve:Serve your site locally"
 | |
|     )
 | |
| 
 | |
|     _describe -t subcommands 'jekyll subcommand' subcommands && ret=0
 | |
|   ;;
 | |
| 
 | |
|   options)
 | |
|     local -a args
 | |
|     args=(
 | |
|       $common_ops
 | |
|     )
 | |
| 
 | |
|     local -a config
 | |
|     config=(
 | |
|       "--config[Custom 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
 |