Browse Source

refactor(lando): add `LANDO_ZSH_WRAPPED_COMMANDS` setting and refactor

Marc Cornellà 6 months ago
parent
commit
d082d87580
2 changed files with 32 additions and 11 deletions
  1. 21 3
      plugins/lando/README.md
  2. 11 8
      plugins/lando/lando.plugin.zsh

+ 21 - 3
plugins/lando/README.md

@@ -8,7 +8,7 @@ To use it, add `lando` to the plugins array in your zshrc file:
 plugins=(... lando)
 ```
 
-## ALIASES:
+## Wrapped Commands
 
 | Alias      | Description      |
 |:----------:|:----------------:|
@@ -21,16 +21,34 @@ plugins=(... lando)
 | `wp`       | `lando wp`       |
 | `yarn`     | `lando yarn`     |
 
+More or different commands can be wrapped by setting the `LANDO_ZSH_WRAPPED_COMMANDS` setting, see [Settings](#settings) below.
+
 ## How It Works:
 
 This plugin removes the requirement to type `lando` before a command. It utilizes the lando version of supported commands run within directories with the following criteria:
+
 - The `.lando.yml` file is found in the current directory or any parent directory within `$LANDO_ZSH_SITES_DIRECTORY`.
 - The current directory is within `$LANDO_ZSH_SITES_DIRECTORY` but is not `$LANDO_ZSH_SITES_DIRECTORY` itself.
+- If the command is not a part of the commands available in the lando environment, it will run the command without `lando`.
 
 ## Settings:
 
-- `LANDO_ZSH_SITES_DIRECTORY`: The plugin will stop searching through parents for `CONFIG_FILE` once it hits this directory.
-- `LANDO_ZSH_CONFIG_FILE`: The plugin will check to see if this provided file exists to check for presence of Lando.
+> NOTE: these settings must be set *before* the plugin is loaded, and any changes require a restart of the shell to be applied.
+
+- `LANDO_ZSH_SITES_DIRECTORY`: The plugin will stop searching through parents for `CONFIG_FILE` once it hits this directory:
+  ```sh
+  LANDO_ZSH_SITES_DIRECTORY="$HOME/Code"
+  ```
+
+- `LANDO_ZSH_CONFIG_FILE`: The plugin will check to see if this provided file exists to check for presence of Lando:
+  ```sh
+  LANDO_ZSH_CONFIG_FILE=".lando.dev.yml"
+  ```
+
+- `LANDO_ZSH_WRAPPED_COMMANDS`: The list of commands to wrap, as a string of commands separated by whitespace:
+  ```sh
+  LANDO_ZSH_WRAPPED_COMMANDS="mysql php composer test artisan"
+  ```
 
 ## Author:
 

+ 11 - 8
plugins/lando/lando.plugin.zsh

@@ -1,16 +1,19 @@
 # Settings
 : ${LANDO_ZSH_SITES_DIRECTORY:="$HOME/Sites"}
 : ${LANDO_ZSH_CONFIG_FILE:=.lando.yml}
+: ${LANDO_ZSH_WRAPPED_COMMANDS:="
+  artisan
+  composer
+  drush
+  gulp
+  npm
+  php
+  wp
+  yarn
+"}
 
 # Enable multiple commands with lando.
-function artisan \
-         composer \
-         drush \
-         gulp \
-         npm \
-         php \
-         wp \
-         yarn {
+function ${=LANDO_ZSH_WRAPPED_COMMANDS} {
   # If the lando task is available in `lando --help`, then it means:
   #
   # 1. `lando` is in a project with a `.lando.yml` file.