Add some completions for jekyll.

This commit is contained in:
David Tomaschik
2016-03-26 20:42:12 -07:00
parent 9c1f09c563
commit 3071ecd7f7
2 changed files with 60 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
#compdef jekyll
_jekyll() {
local curcontext="${curcontext}" state line file
typeset -A opt_args
local -a _subcommands
_subcommands=('docs:list documentation'
'import:import posts'
'serve:run server'
'help:get help'
'doctor:deprecation warnings'
'build:compile site'
'new:create new site'
'clean:clean output'
'draft:create new draft'
'post:create new post'
'publish:publish draft'
'edit:edit post')
_arguments -C \
"(source)"{-s,--source}"[source]:source dir:_files -/" \
"(dest)"{-d,--destination}"[dest]:dest dir:_files -/" \
"--safe[safe mode]" \
"(plugins)"{-p,--plugins}"[plugins]:plugins dir:_files -/" \
"--layouts[layouts]:layouts dir:_files -/" \
"--profile[generate liquid profile]" \
"(help)"{-h,--help}"[help]" \
"(version)"{-v,--version}"[version]" \
"(trace)"{-t,--trace}"[trace]" \
"1:command:->command" \
"*: :->args"
case $state in
command)
_describe -t commands "jekyll subcommand" _subcommands
;;
args)
case "$line[1]" in
edit)
# TODO: Fix to get --source argument
local -a postpaths
postpaths=("${JEKYLL_DIR}/_posts" "${JEKYLL_DIR}/_drafts")
_files -W postpaths
;;
publish)
# TODO: Fix to get --source argument
_files -W ${JEKYLL_DIR}/_drafts
esac
;;
esac
}

View File

@@ -15,6 +15,14 @@ function _jekyll_find_post {
printf "${1}" printf "${1}"
return 0 return 0
fi fi
if [ -f "${JEKYLL_DIR}/_posts/${1}" ] ; then
printf "${JEKYLL_DIR}/_posts/${1}"
return 0
fi
if [ -f "${JEKYLL_DIR}/_drafts/${1}" ] ; then
printf "${JEKYLL_DIR}/_drafts/${1}"
return 0
fi
fname=${2:-${1}} fname=${2:-${1}}
files=(${JEKYLL_DIR}/_posts/*${fname}* ${JEKYLL_DIR}/_drafts/*${fname}*) files=(${JEKYLL_DIR}/_posts/*${fname}* ${JEKYLL_DIR}/_drafts/*${fname}*)
if [ ${#files} -eq "0" ] ; then if [ ${#files} -eq "0" ] ; then