However on win7 though (but not on winxp) all set variables inside
script will be leaked if the script fails within another setlocal ie.
set JAVA_CMD="ja"va"
lein
set
Will show LEIN_HOME, LEIN_JAR and ORIGINAL_PWD remained set.
The following .bat will prove the point:
@echo on
setLocal EnableExtensions EnableDelayedExpansion
set xxx="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
rem comment the following line to prevent xxx to leak into parent shell:
setlocal
rem the below will make script fail(just type "set" to see it leaked):
if x == '
echo not reached!
just as @technomancy said in #774
if LEIN_JAVA_CMD is not set it will fall back to JAVA_CMD which in turn
if it's not set it will fall back to just "java" (without dbl.quotes)
addresses #774
script will still fail if it contains characters like >, <, |, & or even
parentheses or an even number of double quotes
ie. this will work:
set JAVA_CMD="c:\program"" f""iles\java\jdk1."7.0_0"5\bin\java.exe"
lein javac
Showing every failed repo lookup is bad for users.
They see the failure and get confused.
Hook up a custom listener that has the following behavior:
1. success -> print out artifact name, size, and repository name
2. failure -> ignore unless it is the last repo, then print out failure
message with artifact name.
Fixes#610.
use concat instead of merge to merge values, :plugin-repositories and :repositories are lists again
with merge you will end up with a value for :repositories like [[repo {:url url}] ([pluginrepo {:url url}])]
instead of [[repo {:url url}] [pluginrepo {:url url}]]
On some platforms, eg. Mac, it may be more desirable to use an executable other
than 'gpg' for signing and encryption, and it may not be possible to symlink to
'gpg'. This allows the gpg executable used in lein to be specified via LEIN_GPG.
You can use ~/.lein/leinrc or ~/.leinrc to set LEIN_GPG by adding
'export LEIN_GPG=your-gpg' to either of those files.
On a coworker's Mac, the default file encoding was apparently
MacRoman. The -Dfile.encoding=UTF-8 that's in the lein shell script
wasn't being propogated to subprocesses which caused rage and the
replacement character.
Read the TRAMPOLINE_FILE environment variable instead of putting it
in a system property. Drip looks up pre-spun JVMs using a hash of the
command-line arguments, so putting the trampoline file in a system
property causes it to start a new spare JVM for every lein invocation.