Calculate lein's own classpath in bin/lein.

Bootstrapping like a boss.
This commit is contained in:
Phil Hagelberg 2012-01-23 19:17:14 -08:00
parent 03da3ae889
commit 622cd625d9
2 changed files with 14 additions and 3 deletions

1
.gitignore vendored
View file

@ -12,3 +12,4 @@ bin/nom
.lein-deps-sum
docs
/leiningen-core/pom.xml
/.lein-classpath

View file

@ -104,15 +104,25 @@ BIN_DIR="$(dirname "$SCRIPT")"
if [ -r "$BIN_DIR/../src/leiningen/version.clj" ]; then
# Running from source checkout
LEIN_DIR="$(dirname "$BIN_DIR")"
CLASSPATH="$CLASSPATH:$LEIN_DIR/leiningen-core/src/"
CLASSPATH="$CLASSPATH::$LEIN_DIR/lib/*:$LEIN_DIR/leiningen-core/lib/*"
CLASSPATH="$CLASSPATH:$LEIN_DIR/src:$LEIN_DIR/resources:$LEIN_JAR"
if [ "$(ls $LEIN_DIR/leiningen-core/lib/*)" = "" ]; then
echo "Leiningen is missing its dependencies."
echo "Please see \"Building\" in the README."
exit 1
fi
# Use bin/lein to calculate its own classpath
if [ ! -r "$LEIN_DIR/.lein-classpath" ]; then
ORIG_PWD="$PWD"
cd "$LEIN_DIR"
"$0" classpath > "$LEIN_DIR/.lein-classpath"
cd "$ORIG_PWD"
fi
CLASSPATH="`cat $LEIN_DIR/.lein-classpath`:$CLASSPATH"
CLASSPATH="$CLASSPATH:$LEIN_DIR/leiningen-core/src/"
CLASSPATH="$CLASSPATH::$LEIN_DIR/lib/*:$LEIN_DIR/leiningen-core/lib/*"
CLASSPATH="$CLASSPATH:$LEIN_DIR/src:$LEIN_DIR/resources:$LEIN_JAR"
else
# Not running from a checkout
CLASSPATH="$CLASSPATH:$LEIN_JAR"