forked from technomancy/leiningen
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlein
More file actions
executable file
·122 lines (106 loc) · 3.92 KB
/
Copy pathlein
File metadata and controls
executable file
·122 lines (106 loc) · 3.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#!/bin/bash
LEIN_VERSION="1.6.1"
export LEIN_VERSION
if [ `whoami` = "root" ] && [ "$LEIN_ROOT" = "" ]; then
echo "WARNING: You're currently running as root; probably by accident."
echo "Press control-C to abort or Enter to continue as root."
echo "Set LEIN_ROOT to disable this warning."
read _
fi
# cd to the project root, if applicable
NOT_FOUND=1
ORIGINAL_PWD="$PWD"
while [ ! -r "$PWD/project.clj" ] && [ "$PWD" != "/" ] && [ $NOT_FOUND -ne 0 ]; do
cd ..
if [ "$(dirname "$PWD")" = "/" ]; then
NOT_FOUND=0
cd "$ORIGINAL_PWD"
fi
done
# Support $JAVA_OPTS for backwards-compatibility.
JVM_OPTS=${JVM_OPTS:-"$JAVA_OPTS"}
JAVA_CMD=${JAVA_CMD:-"java"}
LEIN_HOME=${LEIN_HOME:-"$HOME/.lein"}
DEV_PLUGINS="$(ls -1 lib/dev/*jar 2> /dev/null)"
USER_PLUGINS="$(ls -1 "$LEIN_HOME"/plugins/*jar 2> /dev/null)"
artifact_name () {
echo "$1" | sed -e "s/.*\/\(.*\)/\1/" | \
rev | sed -e "s/raj[-[:digit:].]*-\(.*\)/\1/" | rev
}
unique_user_plugins () {
saveIFS="$IFS"
IFS="$(printf '\n\t')"
plugins="$(echo "$DEV_PLUGINS"; echo "$USER_PLUGINS")"
artifacts="$(for i in $plugins; do echo "$(artifact_name "$i")"; done)"
duplicates="$(echo "$artifacts" | sort | uniq -d)"
if [ -z "$duplicates" ]; then
echo "$USER_PLUGINS"
else
for i in $USER_PLUGINS; do
artifact="$(artifact_name "$i")"
if ! echo "$duplicates" | grep -xq "$artifact"; then
echo "$i"
fi
done
fi
IFS="$saveIFS"
}
LEIN_PLUGIN_PATH="$(echo "$DEV_PLUGINS" | tr \\n :)"
LEIN_USER_PLUGIN_PATH="$(echo "$(unique_user_plugins)" | tr \\n :)"
CLASSPATH="$CLASSPATH:$LEIN_PLUGIN_PATH:$LEIN_USER_PLUGIN_PATH:test/:src/"
LEIN_JAR="$HOME/.lein/self-installs/leiningen-$LEIN_VERSION-standalone.jar"
CLOJURE_JAR="/usr/share/java/clojure-1.2.jar:/usr/share/java/asm3.jar"
NULL_DEVICE=/dev/null
# apply context specific CLASSPATH entries
if [ -f .classpath ]; then
CLASSPATH="`cat .classpath`:$CLASSPATH"
fi
# normalize $0 on certain BSDs
if [ "$(dirname "$0")" = "." ]; then
SCRIPT="$(which $(basename "$0"))"
else
SCRIPT="$0"
fi
SHARE_JARS="ant ant-launcher classworlds clojure-1.2 \
lucene-memory maven-ant-tasks maven-artifact maven-artifact-manager \
maven-error-diagnostics maven-model maven-settings maven-project maven-profile \
maven-repository-metadataplexus-container-default-alpha plexus-interpolation \
plexus-utils wagon-file wagon-http-lightweight wagon-http-shared wagon-provider-api \
xml-apis lucene-core lucene-highlighter clucy robert-hooke lancet leiningen
backport-util-concurrent" # NFI why that last one is necessary
for JAR in $SHARE_JARS; do
CLASSPATH="$CLASSPATH":"/usr/share/java/$JAR.jar"
done
if [ $DEBUG ]; then
echo $CLASSPATH
echo $CLOJURE_JAR
fi
# Use rlwrap if appropriate
if ([ "$1" = "repl" ] || [ "$1" = "interactive" ] || [ "$1" = "int" ]) &&
[ -z $INSIDE_EMACS ] && [ "$TERM" != "dumb" ]; then
which rlwrap > /dev/null
if [ $? -eq 0 ]; then
RLWRAP="rlwrap -m -q '\"'" # custom quote chars
fi
fi
if [ "$1" = "trampoline" ]; then
TRAMPOLINE_FILE="/tmp/lein-trampoline-$$"
if [ "$OSTYPE" = "cygwin" ]; then
TRAMPOLINE_FILE=`cygpath -w $TRAMPOLINE_FILE`
fi
$JAVA_CMD -Xbootclasspath/a:"$CLOJURE_JAR" -client $JVM_OPTS \
-Dleiningen.original.pwd="$ORIGINAL_PWD" \
-Dleiningen.trampoline-file=$TRAMPOLINE_FILE -cp "$CLASSPATH" \
clojure.main -e "(use 'leiningen.core)(-main)" \
$NULL_DEVICE "$@"
if [ -r $TRAMPOLINE_FILE ]; then
TRAMPOLINE="$(cat $TRAMPOLINE_FILE)"
rm $TRAMPOLINE_FILE
exec sh -c "exec $TRAMPOLINE"
fi
else
exec $RLWRAP $JAVA_CMD -Xbootclasspath/a:"$CLOJURE_JAR" -client $JVM_OPTS \
-Dleiningen.original.pwd="$ORIGINAL_PWD" \
-cp "$CLASSPATH" clojure.main -e "(use 'leiningen.core)(-main)" \
$NULL_DEVICE "$@"
fi