-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgetclojure.sh
More file actions
113 lines (99 loc) · 2.34 KB
/
getclojure.sh
File metadata and controls
113 lines (99 loc) · 2.34 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
#!/bin/bash
# Clojure installer v1.0
#
# It installs:
# - Oracle Java 7
# - Leiningen
# - Lein Exec plugin
SOURCES="/etc/apt/sources.list"
JAVA_PPA_URL="http://ppa.launchpad.net/webupd8team/java/ubuntu"
JAVA_PPA_KEY="EEA14886"
determine_codename() {
CODENAME=`cat /etc/lsb-release | grep -oP '(?<=DISTRIB_CODENAME\W)\w+'`
}
append_to_file() {
echo $2 | sudo tee -a $1 > /dev/null
}
install_java() {
if [ -z "`cat $SOURCES | grep $JAVA_PPA_URL`" ]; then
echo
echo "Add webup8team/java ppa..."
append_to_file $SOURCES ""
append_to_file $SOURCES "# Oracle Java"
append_to_file $SOURCES "deb $JAVA_PPA_URL $CODENAME main"
append_to_file $SOURCES "deb-src $JAVA_PPA_URL $CODENAME main"
echo "DONE"
fi
echo
echo "Add webupd8team/java repository key..."
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $JAVA_PPA_KEY > /dev/null
echo "DONE"
echo
echo "Update repositories..."
sudo apt-get update > /dev/null
echo "DONE"
echo
echo "Install Java..."
sudo apt-get install oracle-java7-installer
echo "DONE"
}
install_leiningen() {
echo
echo "Install Leiningen..."
sudo wget -O /usr/bin/lein https://raw.github.com/technomancy/leiningen/stable/bin/lein
sudo chmod a+x /usr/bin/lein
export LEIN_ROOT=1
lein
echo "DONE"
}
install_lein_exec() {
echo
echo "Install lein-exec plugin..."
append_to_file ~/.lein/profiles.clj '{:user {:plugins [[lein-exec "0.3.1"]]}}'
echo "DONE"
}
change_rights() {
if [ $SUDO_USER ]; then user=$SUDO_USER; else user=`whoami`; fi
sudo chown -R $user:$user $1
}
# Main workflow
clear
echo "Running getclojure.sh"
echo
echo "Check Java..."
java=`which java`
if [ -n "$java" ]; then
echo "OK"
else
echo "NOT FOUND"
determine_codename
install_java
fi
echo
echo "Check Leiningen..."
leiningen=`which lein`
if [ -n "$leiningen" ]; then
echo "OK"
else
echo "NOT FOUND"
install_leiningen
fi
echo
echo "Check lein-exec plugin..."
if [ -f ~/.lein/profiles.clj ]; then
lein_plugin=`cat ~/.lein/profiles.clj | grep -P '\[\[lein-exec "\d.\d.\d"\]\]'` > /dev/null
if [ -n "$lein_plugin" ]; then
echo "OK"
else
echo "NOT FOUND"
install_lein_exec
fi
else
echo "NOT FOUND"
install_lein_exec
fi
change_rights ~/.lein
echo
echo "Clojure is now ready to be executed with Leiningen!"
echo "(Use the following command: lein exec code.clj)"
echo