Browse Source

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
Josh Parnham 5 years ago
parent
commit
a2dab42c35
3 changed files with 68 additions and 26 deletions
  1. 8 11
      plugins/nanoc/README.md
  2. 58 10
      plugins/nanoc/_nanoc
  3. 2 5
      plugins/nanoc/nanoc.plugin.zsh

+ 8 - 11
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. |
+| 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) |

+ 58 - 10
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

+ 2 - 5
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'