blob: b66560c927d4e133d29001774b573666843e5202 [file] [log] [blame] [edit]
@echo off
SETLOCAL EnableDelayedExpansion
REM we want jruby-complete to take care of all things ruby
SET GEM_HOME=
SET GEM_PATH=
# This code supports both:
# ./go "namespace:task[--arg1,--arg2]" --rake-flag
# ./go namespace:task --arg1 --arg2 -- --rake-flag
REM The first argument is always the Rake task name
SET task=%1
REM Check for arguments
IF "%task%"=="" (
echo No task specified
exit /b 1
)
REM Shift the task off
SHIFT
REM Leave task alone if already passing in arguments the normal way
ECHO %task% | FINDSTR /C:"[" >NUL
IF %ERRORLEVEL% EQU 0 (
GOTO execute_with_args
)
REM Initialize variables for task arguments and rake flags
SET task_args=
SET rake_flags=
SET separator_found=false
REM Process arguments until we find --
:process_args
IF "%1"=="" GOTO done_args
IF "%1"=="--" (
SET separator_found=true
SHIFT
GOTO collect_rake_flags
)
REM Add to task arguments
IF "!task_args!"=="" (
SET task_args=%1
) ELSE (
SET task_args=!task_args!,%1
)
SHIFT
GOTO process_args
REM Collect remaining arguments as rake flags
:collect_rake_flags
IF "%1"=="" GOTO done_args
IF "!rake_flags!"=="" (
SET rake_flags=%1
) ELSE (
SET rake_flags=!rake_flags! %1
)
SHIFT
GOTO collect_rake_flags
:done_args
REM If we have task args, format them as task[arg1,arg2,...]
IF NOT "!task_args!"=="" (
SET task=%task%[!task_args!]
ECHO Executing rake task: %task%
)
:execute
REM Execute rake with the task and flags
java %JAVA_OPTS% -jar third_party\jruby\jruby-complete.jar -X-C -S rake %task% %rake_flags%
GOTO :EOF
:execute_with_args
REM Task already has arguments in brackets, pass remaining args directly to rake
java %JAVA_OPTS% -jar third_party\jruby\jruby-complete.jar -X-C -S rake %task% %*