Add lando plugin (#8748)
Co-authored-by: Joshua Bedford <joshua.bedford@hurstreview.com> Co-authored-by: Marc Cornellà <marc.cornella@live.com>master
parent
a5e706d749
commit
4cd5f7f920
3 changed files with 98 additions and 0 deletions
@ -0,0 +1,21 @@ |
||||
MIT License |
||||
|
||||
Copyright (c) 2019 Joshua Bedford |
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
of this software and associated documentation files (the "Software"), to deal |
||||
in the Software without restriction, including without limitation the rights |
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
||||
copies of the Software, and to permit persons to whom the Software is |
||||
furnished to do so, subject to the following conditions: |
||||
|
||||
The above copyright notice and this permission notice shall be included in all |
||||
copies or substantial portions of the Software. |
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
||||
SOFTWARE. |
||||
@ -0,0 +1,37 @@ |
||||
# Lando ZSH (lando-zsh) |
||||
|
||||
This plugin adds aliases for using various languages and frameworks with [Lando](https://docs.lando.dev/basics/) for Docker. It will only run within lando-driven project directories. |
||||
|
||||
To use it, add `lando` to the plugins array in your zshrc file: |
||||
|
||||
```zsh |
||||
plugins=(... lando) |
||||
``` |
||||
|
||||
## ALIASES: |
||||
|
||||
| Alias | Description | |
||||
|:----------:|:----------------:| |
||||
| `artisan` | `lando artisan` | |
||||
| `composer` | `lando composer` | |
||||
| `drush` | `lando drush` | |
||||
| `gulp` | `lando gulp` | |
||||
| `npm` | `lando npm` | |
||||
| `wp` | `lando wp` | |
||||
| `yarn` | `lando yarn` | |
||||
|
||||
## 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. |
||||
|
||||
## 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. |
||||
|
||||
## Author: |
||||
|
||||
- Author: Joshua Bedford |
||||
- URL: [https://github.com/joshuabedford/lando-zsh](https://github.com/joshuabedford/lando-zsh) |
||||
@ -0,0 +1,40 @@ |
||||
# Settings |
||||
: ${LANDO_ZSH_SITES_DIRECTORY:="$HOME/Sites"} |
||||
: ${LANDO_ZSH_CONFIG_FILE:=.lando.yml} |
||||
|
||||
# Enable multiple commands with lando. |
||||
function artisan \ |
||||
composer \ |
||||
drush \ |
||||
gulp \ |
||||
npm \ |
||||
wp \ |
||||
yarn { |
||||
if checkForLandoFile; then |
||||
lando "$0" "$@" |
||||
else |
||||
command "$0" "$@" |
||||
fi |
||||
} |
||||
|
||||
# Check for the file in the current and parent directories. |
||||
checkForLandoFile() { |
||||
# Only bother checking for lando within the Sites directory. |
||||
if [[ "$PWD/" != "$LANDO_ZSH_SITES_DIRECTORY"/* ]]; then |
||||
# Not within $LANDO_ZSH_SITES_DIRECTORY |
||||
return 1 |
||||
fi |
||||
|
||||
local curr_dir="$PWD" |
||||
# Checking for file: $LANDO_ZSH_CONFIG_FILE within $LANDO_ZSH_SITES_DIRECTORY... |
||||
while [[ "$curr_dir" != "$LANDO_ZSH_SITES_DIRECTORY" ]]; do |
||||
if [[ -f "$curr_dir/$LANDO_ZSH_CONFIG_FILE" ]]; then |
||||
return 0 |
||||
fi |
||||
curr_dir="${curr_dir:h}" |
||||
done |
||||
|
||||
# Could not find $LANDO_ZSH_CONFIG_FILE in the current directory |
||||
# or in any of its parents up to $LANDO_ZSH_SITES_DIRECTORY. |
||||
return 1 |
||||
} |
||||
Loading…
Reference in new issue