Recalculate .lein-classpath when project.clj changes.

This commit is contained in:
Phil Hagelberg 2012-02-07 18:25:07 -08:00
parent e305fb1dea
commit 52a51c3570
2 changed files with 15 additions and 4 deletions

3
.gitignore vendored
View file

@ -10,4 +10,5 @@ bin/nom
/scratch.clj
.lein-deps-sum
docs
/.lein-classpath
.lein-classpath
.lein-project-checksum

View file

@ -79,16 +79,26 @@ if [ -r "$BIN_DIR/../src/leiningen/version.clj" ]; then
exit 1
fi
LAST_PROJECT_CHECKSUM=$(cat "$LEIN_DIR/.lein-project-checksum" 2> /dev/null)
PROJECT_CHECKSUM=$(sum "$LEIN_DIR/project.clj" "$LEIN_DIR/leiningen-core/project.clj")
if [ "$PROJECT_CHECKSUM" != "$LAST_PROJECT_CHECKSUM" ]; then
if [ -r "$LEIN_DIR/.lein-classpath" ]; then
rm "$LEIN_DIR/.lein-classpath"
fi
fi
# Use bin/lein to calculate its own classpath
if [ ! -r "$LEIN_DIR/.lein-classpath" ]; then
if [ ! -r "$LEIN_DIR/.lein-classpath" ] && [ $1 != "classpath" ]; then
echo "Recalculating Leiningen's classpath."
ORIG_PWD="$PWD"
cd "$LEIN_DIR"
"$0" classpath > "$LEIN_DIR/.lein-classpath"
"$0" classpath > .lein-classpath
sum project.clj leiningen-core/project.clj > .lein-project-checksum
cd "$ORIG_PWD"
fi
CLASSPATH="$CLASSPATH:$LEIN_DIR/leiningen-core/src/"
CLASSPATH="$CLASSPATH:`cat $LEIN_DIR/.lein-classpath`"
CLASSPATH="$CLASSPATH:$(cat $LEIN_DIR/.lein-classpath 2> /dev/null)"
CLASSPATH="$CLASSPATH::$LEIN_DIR/lib/*:$LEIN_DIR/leiningen-core/lib/*"
CLASSPATH="$CLASSPATH:$LEIN_DIR/test:$LEIN_DIR/src:$LEIN_DIR/resources:$LEIN_JAR"
else