12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- # 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 ${=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.
- # 2. The lando task is available for lando, based on the .lando.yml config file.
- #
- # This has a penalty of about 250ms, so we still want to check if the lando file
- # exists before, which is the fast path. If it exists, checking help output is
- # still faster than running the command and failing.
- if _lando_file_exists && lando --help 2>&1 | command grep -Eq "^ +lando $0 "; then
- command lando "$0" "$@"
- else
- command "$0" "$@"
- fi
- }
- # Check for the file in the current and parent directories.
- _lando_file_exists() {
- # 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
- }
|