Disable user plugin when the same artifact is a dev dependency in lein.bat.
This commit is contained in:
parent
bd466d751a
commit
5cb765686b
1 changed files with 61 additions and 10 deletions
71
bin/lein.bat
71
bin/lein.bat
|
@ -26,19 +26,15 @@ if "%ORIGINAL_PWD:~-1%x" == "\x" set "ORIGINAL_PWD=%ORIGINAL_PWD%\"
|
|||
call :FIND_DIR_CONTAINING_UPWARDS project.clj
|
||||
if "%DIR_CONTAINING%" neq "" cd "%DIR_CONTAINING%"
|
||||
|
||||
set LEIN_PLUGINS="
|
||||
|
||||
set DEV_PLUGINS="
|
||||
for %%j in (".\lib\dev\*.jar") do (
|
||||
set LEIN_PLUGINS=!LEIN_PLUGINS!;%%~fj
|
||||
set DEV_PLUGINS=!DEV_PLUGINS!;%%~fj
|
||||
)
|
||||
set LEIN_PLUGINS=!LEIN_PLUGINS!"
|
||||
set DEV_PLUGINS=!DEV_PLUGINS!"
|
||||
|
||||
set LEIN_USER_PLUGINS="
|
||||
for %%j in ("%LEIN_HOME%\plugins\*.jar") do (
|
||||
set LEIN_USER_PLUGINS=!LEIN_USER_PLUGINS!;%%~fj
|
||||
)
|
||||
set LEIN_USER_PLUGINS=!LEIN_USER_PLUGINS!"
|
||||
|
||||
set CLASSPATH="%CLASSPATH%";%LEIN_USER_PLUGINS%;%LEIN_PLUGINS%;test;src
|
||||
call :BUILD_UNIQUE_USER_PLUGINS
|
||||
set CLASSPATH="%CLASSPATH%";%DEV_PLUGINS%;%UNIQUE_USER_PLUGINS%;test;src
|
||||
|
||||
rem Apply context specific CLASSPATH entries
|
||||
set CONTEXT_CP=""
|
||||
|
@ -81,6 +77,61 @@ set CLOJURE_JAR=%USERPROFILE%\.m2\repository\org\clojure\clojure\1.2.1\clojure-1
|
|||
goto RUN
|
||||
|
||||
|
||||
rem Builds a classpath fragment consisting of user plugins
|
||||
rem which aren't already present as a dev dependency.
|
||||
:BUILD_UNIQUE_USER_PLUGINS
|
||||
call :BUILD_PLUGIN_SEARCH_STRING %DEV_PLUGINS%
|
||||
set UNIQUE_USER_PLUGINS="
|
||||
for %%j in ("%LEIN_HOME%\plugins\*.jar") do (
|
||||
call :MAKE_SEARCH_TOKEN %%~nj
|
||||
echo %PLUGIN_SEARCH_STRING%|findstr ;!SEARCH_TOKEN!; > NUL
|
||||
if !ERRORLEVEL! == 1 (
|
||||
set UNIQUE_USER_PLUGINS=!UNIQUE_USER_PLUGINS!;%%~fj
|
||||
)
|
||||
)
|
||||
set UNIQUE_USER_PLUGINS=!UNIQUE_USER_PLUGINS!"
|
||||
goto :EOF
|
||||
|
||||
rem Builds a search string to match against when ensuring
|
||||
rem plugin uniqueness.
|
||||
:BUILD_PLUGIN_SEARCH_STRING
|
||||
for %%j in (".\lib\dev\*.jar") do (
|
||||
call :MAKE_SEARCH_TOKEN %%~nj
|
||||
set PLUGIN_SEARCH_STRING=!PLUGIN_SEARCH_STRING!;!SEARCH_TOKEN!
|
||||
)
|
||||
set PLUGIN_SEARCH_STRING=%PLUGIN_SEARCH_STRING%;
|
||||
goto :EOF
|
||||
|
||||
rem Takes a jar filename and returns a reversed jar name without version.
|
||||
rem Example: lein-multi-0.1.1.jar -> itlum-niel
|
||||
:MAKE_SEARCH_TOKEN
|
||||
call :REVERSE_STRING %1
|
||||
call :STRIP_VERSION !RSTRING!
|
||||
set SEARCH_TOKEN=!VERSIONLESS!
|
||||
goto :EOF
|
||||
|
||||
rem Reverses a string.
|
||||
:REVERSE_STRING
|
||||
set NUM=0
|
||||
set INPUTSTR=%1
|
||||
set RSTRING=
|
||||
:REVERSE_STRING_LOOP
|
||||
call set TMPCHR=%%INPUTSTR:~%NUM%,1%%%
|
||||
set /A NUM+=1
|
||||
if not "x%TMPCHR%" == "x" (
|
||||
set RSTRING=%TMPCHR%%RSTRING%
|
||||
goto REVERSE_STRING_LOOP
|
||||
)
|
||||
goto :EOF
|
||||
|
||||
rem Takes a string and removes everything from the beginning up to
|
||||
rem and including the first dash character.
|
||||
:STRIP_VERSION
|
||||
set INPUT=%1
|
||||
for /F "delims=- tokens=1*" %%a in ("%INPUT%") do set VERSIONLESS=%%b
|
||||
goto :EOF
|
||||
|
||||
|
||||
:NO_LEIN_JAR
|
||||
echo.
|
||||
echo %LEIN_JAR% can not be found.
|
||||
|
|
Loading…
Reference in a new issue