You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.5 KiB
52 lines
1.5 KiB
# 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 |
|
}
|
|
|