From a2dab42c35cfcd7e5f7e7d5ecc58bbd8699028ce Mon Sep 17 00:00:00 2001 From: Josh Parnham Date: Thu, 18 Oct 2018 06:26:48 +1100 Subject: [PATCH] nanoc: update to latest version (#7282) * nanoc: update command aliases - remove deprecated commands - update `create-site` - add `prune` * nanoc: update README * nanoc: update autompletion - update commands - add flag options to subcommands --- plugins/nanoc/README.md | 19 ++++------ plugins/nanoc/_nanoc | 68 +++++++++++++++++++++++++++++----- plugins/nanoc/nanoc.plugin.zsh | 7 +--- 3 files changed, 68 insertions(+), 26 deletions(-) diff --git a/plugins/nanoc/README.md b/plugins/nanoc/README.md index 9e21805f4..d5d437d8a 100644 --- a/plugins/nanoc/README.md +++ b/plugins/nanoc/README.md @@ -10,14 +10,11 @@ plugins=(... nanoc) ## Aliases -| Alias | Command | Description | -|-------|-----------------------|----------------------------------------------------| -| n | `nanoc` | Main Nanoc command | -| na | `nanoc autocompile` | The autocompile command has been deprecated since Nanoc 3.6. Use [guard-nanoc](https://github.com/nanoc/nanoc/tree/master/guard-nanoc) instead. | -| nco | `nanoc compile` | Compile all items of the current site. | -| nci | `nanoc create_item` | Command was deprecated in Nanoc v.3 and completely removed in v.4 | -| ncl | `nanoc create_layout` | Command was deprecated in Nanoc v.3 and completely removed in v.4 | -| ncs | `nanoc create_site` | Create a new site at the given path. The site will use the filesystem data source. | -| nd | `nanoc deploy` | Deploys the compiled site. The compiled site contents in the output directory will be uploaded to the destination, which is specified using the --target option. | -| nv | `nanoc view` | Start the static web server. Unless specified, the web server will run on port 3000 and listen on all IP addresses. | -| nw | `nanoc watch` | The watch command has been deprecated since Nanoc 3.6. Use [guard-nanoc](https://github.com/nanoc/nanoc/tree/master/guard-nanoc) instead. | \ No newline at end of file +| Alias | Command | Description | +|-------|-----------------------|-----------------------------------------------------------------------------------| +| n | `nanoc` | Main Nanoc command | +| nco | `nanoc compile` | Compile all items of the current site | +| ncs | `nanoc create-site` | Create a new site at the given path. The site will use the filesystem data source | +| nd | `nanoc deploy` | Deploy the compiled site to the destination (specified with `--target`) | +| np | `nanoc prune` | Remove files not managed by Nanoc from the output directory | +| nv | `nanoc view` | Start the static web server (on port 3000 and all IP addresses, unless specified) | diff --git a/plugins/nanoc/_nanoc b/plugins/nanoc/_nanoc index fde07c3fc..a6a4792ad 100644 --- a/plugins/nanoc/_nanoc +++ b/plugins/nanoc/_nanoc @@ -1,28 +1,21 @@ #compdef nanoc #autoload -# nanoc zsh completion - based on the homebrew zsh completion # requires the 'nanoc' gem to be installed local -a _1st_arguments _1st_arguments=( - 'autocompile:start the autocompiler' + 'check:run issue checks' 'compile:compile items of this site' - 'create-item:create an item' - 'create-layout:create a layout' 'create-site:create a site' 'deploy:deploy the compiled site' 'help:show help' 'prune:remove files not managed by nanoc from the output directory' + 'shell:open a shell on the Nanoc environment' 'show-data:show data in this site' 'show-plugins:show all available plugins' 'show-rules:describe the rules for each item' - 'update:update the data stored by the data source to a newer version' - 'validate-css:validate the site’s CSS' - 'validate-html:validate the site’s HTML' - 'validate-links:validate links in site' 'view:start the web server that serves static files' - 'watch:start the watcher' ) local expl @@ -31,13 +24,68 @@ local -a pkgs installed_pkgs _arguments \ '(--color)--color[enable color]' \ '(--debug)--debug[enable debugging]' \ + '(--env)--env[set environment]' \ '(--help)--help[show the help message and quit]' \ '(--no-color)--no-color[disable color]' \ - '(--verbose)--verbose[make nanoc output more detailed]' \ + '(--verbose)--verbose[make output more detailed]' \ '(--version)--version[show version information and quit]' \ '(--warn)--warn[enable warnings]' \ '*:: :->subcmds' && return 0 +case "$state" in + subcmds) + case $words[1] in + check) + _arguments \ + '(--preprocess)--preprocess[run preprocessor]' + ;; + + compile) + _arguments \ + '(--diff)--diff[generate diff]' + ;; + + compile) + _arguments \ + '(--diff)--diff[generate diff]' + ;; + + create-site) + _arguments \ + '(--force)--force[force creation of new site]' + ;; + + deploy) + _arguments \ + '(--target)--target[specify the location to deploy to (default: `default`)]' \ + '(--no-check)--no-check[do not run the issue checks marked for deployment]' \ + '(--list)--list[list available locations to deploy to]' \ + '(--list-deployers)--list-deployers[list available deployers]' \ + '(--dry-run)--dry-run[show what would be deployed]' + ;; + + prune) + _arguments \ + '(--yes)--yes[confirm deletion]' \ + '(--dry-run)--dry-run[print files to be deleted instead of actually deleting them]' + ;; + + shell) + _arguments \ + '(--preprocess)--preprocess[run preprocessor]' + ;; + + view) + _arguments \ + '(--handler)--handler[specify the handler to use (webrick/mongrel/...)]' \ + '(--host)--host[specify the host to listen on (default: 127.0.0.1)]' \ + '(--port)--port[specify the port to listen on (default: 3000]' \ + '(--live-reload)--live-reload[reload on changes]' + ;; + esac + ;; +esac + if (( CURRENT == 1 )); then _describe -t commands "nanoc subcommand" _1st_arguments return diff --git a/plugins/nanoc/nanoc.plugin.zsh b/plugins/nanoc/nanoc.plugin.zsh index 5a5064613..05272ed66 100644 --- a/plugins/nanoc/nanoc.plugin.zsh +++ b/plugins/nanoc/nanoc.plugin.zsh @@ -1,9 +1,6 @@ alias n='nanoc' -alias na='nanoc autocompile' alias nco='nanoc compile' -alias nci='nanoc create_item' -alias ncl='nanoc create_layout' -alias ncs='nanoc create_site' +alias ncs='nanoc create-site' alias nd='nanoc deploy' +alias np='nanoc prune' alias nv='nanoc view' -alias nw='nanoc watch'