mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
BUG Ensure sake works when called from any directory
This commit is contained in:
parent
e9e7bd649e
commit
884fdd61b1
46
sake
46
sake
@ -9,40 +9,30 @@ Executes a SilverStripe command"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# find the silverstripe installation
|
||||
# find the silverstripe installation, looking first at sake
|
||||
# bin location, but falling back to current directory
|
||||
sakedir=`dirname $0`
|
||||
if [ -f "$sakedir/cli-script.php" ]; then
|
||||
framework="$sakedir"
|
||||
base=`dirname $sakedir`
|
||||
elif [ -f ./cli-script.php ]; then
|
||||
framework=.
|
||||
base=..
|
||||
else
|
||||
# look up the tree for the first parent folder that has a framework
|
||||
# installation
|
||||
slashes=${PWD//[^\/]/}
|
||||
directory="$PWD"
|
||||
base=.
|
||||
for (( n=${#slashes}; n>0; --n )) do
|
||||
if [ -d "$directory/vendor/silverstripe/framework" ]; then
|
||||
if [ -f "$sakedir/cli-script.php" ]; then
|
||||
# Calling sake from vendor/silverstripe/framework/sake
|
||||
framework="$sakedir"
|
||||
base="$sakedir/../../.."
|
||||
elif [ -f "$sakedir/../silverstripe/framework/cli-script.php" ]; then
|
||||
# Calling sake from vendor/bin/sake
|
||||
framework="$sakedir/../silverstripe/framework"
|
||||
base="$sakedir/../.."
|
||||
elif [ -f "$directory/vendor/silverstripe/framework/cli-script.php" ]; then
|
||||
# Vendor framework (from base) if sake installed globally
|
||||
framework="$directory/vendor/silverstripe/framework"
|
||||
|
||||
break
|
||||
elif [ -d "$directory/framework" ]; then
|
||||
base=.
|
||||
elif [ -f "$directory/framework/cli-script.php" ]; then
|
||||
# Legacy directory (from base) if sake installed globally
|
||||
framework="$directory/framework"
|
||||
|
||||
break
|
||||
fi
|
||||
|
||||
directory=`dirname $directory`
|
||||
base="$base."
|
||||
done
|
||||
|
||||
if [ ! -f "$framework/cli-script.php" ]; then
|
||||
echo "Can't find cli-script.php in $framework"
|
||||
base=.
|
||||
else
|
||||
echo "Can't find cli-script.php in $sakedir"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Find the PHP binary
|
||||
for candidatephp in php php5; do
|
||||
|
Loading…
Reference in New Issue
Block a user