dotfiles/zsh/files/lando.zsh

102 lines
1.9 KiB
Bash

#!/usr/bin/env zsh
SITES_DIRECTORY="$HOME/Sites"
CONFIG_FILE="./.lando.yml"
# Enable wp command
function wp() {
if checkForFile $CONFIG_FILE $SITES_DIRECTORY ; then
lando wp "$@"
else
command wp "$@"
fi
}
# Enable composer command
function composer() {
if checkForFile $CONFIG_FILE $SITES_DIRECTORY ; then
lando composer "$@"
else
command composer "$@"
fi
}
# Enable artisan command
function artisan() {
if checkForFile $CONFIG_FILE $SITES_DIRECTORY ; then
lando artisan "$@"
else
command artisan "$@"
fi
}
# Enable yarn command
function yarn() {
if checkForFile $CONFIG_FILE $SITES_DIRECTORY ; then
lando yarn "$@"
else
command yarn "$@"
fi
}
# Enable npm command
function npm() {
if checkForFile $CONFIG_FILE $SITES_DIRECTORY ; then
lando npm "$@"
else
command npm "$@"
fi
}
# Enable gulp command
function gulp() {
if checkForFile $CONFIG_FILE $SITES_DIRECTORY ; then
lando gulp "$@"
else
command gulp "$@"
fi
}
checkForFile() {
local current_directory="$PWD"
# Bash is backwards. 0 is true 1 (non-zero) is false.
flag="1"
# Only bother checking for lando within the Sites directory.
if [[ ":$PWD:" == *":$2"* ]]; then
echo "Checking for file: $1 within $2..."
while true; do
if [ $current_directory != "$2" ]; then
if [ -f "$current_directory/$1" ]; then
return "0"
fi
current_directory="$(dirname $current_directory)"
else
break;
fi
done
if [[ "$flag" == "1" ]]; then
echo "Could not find $1 in the current directory or in any of its parents up to $2."
fi
else
echo "Checking for file: $1"
if [ -f "$1" ]; then
echo "Found it"
return 0
else
echo "Not Found"
return "1"
fi
if [[ "$flag" == "1" ]]; then
echo "Could not find $1."
fi
fi
return $flag
}