I've commented on the forum post.

On 08/08/2012, at 6:08 PM, Spencer Allain wrote:

> Posted this to the forums, but it butchered the scripts I attached.
> 
> Using gradlew is nice for a lot of reasons, but it somewhat forces you to run 
> things from the command line at the top project level only or use 
> ../../gradlew depending upon where in the subproject tree one is. 
> 
> How about if there were scripts called gradlew and gradlew.bat that shipped 
> with gradle in the bin directory (so they'd be picked up along the path if a 
> gradle instance were added to someone's path) and they simply attempt to walk 
> up the current directory structure looking for a gradlew/gradlew.bat file. 
> 
> Below are some scripts that do just that - whether they are well written is a 
> separate issue ;-) Not sure if the windows script works in XP, but it 
> definitely works in Vista and above. 
> 
> gradlew
> ===========================================================
> #!/bin/bash
> 
> FOUND=0
> CURR_PATH="$PWD"
> REAL_GRADLEW="$CURR_PATH/gradlew"
> 
> if [ -x "$REAL_GRADLEW" ]
> then
>   FOUND=1
> else
>   while [ "$CURR_PATH" != "/" ]
>   do
>     CURR_PATH=$(dirname "$CURR_PATH")
>     REAL_GRADLEW="$CURR_PATH/gradlew"
> 
>     if [ -x "$REAL_GRADLEW" ]
>     then
>       FOUND=1
>       break
>     fi
>   done
> fi
> 
> if [ $FOUND -eq 1 ]
> then
>   $REAL_GRADLEW "$@"
> else
>   echo "Unable to find gradlew file upwards in filesystem"
> fi
> 
> exit 0
> 
> 
> gradlew.bat
> ===========================================================
> @echo off
> setlocal enabledelayedexpansion
> set CURR_PATH=%cd%
> 
> set REAL_GRADLEW=%CURR_PATH%\gradlew.bat
> 
> if exist %REAL_GRADLEW% (
>   goto :found
> )
> 
> :while1
>   call :getdir "%CURR_PATH%"
> 
>   set REAL_GRADLEW=!CURR_PATH!\gradlew.bat
> 
>   if exist !REAL_GRADLEW! (
>     goto :found
>   )
> 
>   if "%CURR_PATH:~-1%" == ":" (
>     goto :notfound
>   )
> goto :while1
> 
> :notfound
> echo Unable to find gradlew.bat file upwards in filesystem
> goto :goodbye
> 
> :found
> call !REAL_GRADLEW! %*
> 
> :goodbye
> endlocal
> goto :EOF
> 
> :getdir
> set "CURR_PATH=%~dp1"
> set "CURR_PATH=%CURR_PATH:~0,-1%"
> 
> 
> -Spencer

-- 
Luke Daley
Principal Engineer, Gradleware 
http://gradleware.com

Reply via email to