@@ -5,7 +5,7 @@ if [ -z "$JULIAVM_JULIA_REPO" ]; then
5
5
export JULIAVM_JULIA_REPO=" https://github.com/JuliaLang/julia"
6
6
fi
7
7
if [ -z " $JULIAVM_JULIA_AWS " ]; then
8
- export JULIAVM_JULIA_AWS=" https://julialang.s3.amazonaws.com/bin/linux/x64/ "
8
+ export JULIAVM_JULIA_AWS=" https://julialang.s3.amazonaws.com/bin/linux/"
9
9
fi
10
10
if [ -z " $JULIAVM_WORK_DIR " ]; then
11
11
export JULIAVM_WORK_DIR=$( cd " $( dirname " $0 " ) " && pwd )
@@ -18,26 +18,32 @@ juliavm_ls_remote() {
18
18
}
19
19
20
20
juliavm_install (){
21
- file=$( juliavm_get_file_name $1 )
22
- url=$( juliavm_get_download_url $1 )
23
-
24
- JULIAVM_DISTS_DIR= $JULIAVM_WORK_DIR ' /dists/ ' $1
21
+ file=$( juliavm_get_file_name $1 $2 )
22
+ url=$( juliavm_get_download_url $1 $2 )
23
+
24
+ dists_dir= $( juliavm_get_dist_dir $1 $2 )
25
25
26
- if [ -d " $JULIAVM_DISTS_DIR " ]; then
27
- echo $JULIAVM_DISTS_DIR ' already exist'
26
+ if [ -d " $dists_dir " ]; then
27
+ echo $dists_dir ' already exist'
28
28
else
29
- eval ' mkdir $JULIAVM_DISTS_DIR '
30
- eval ' wget $url -P $JULIAVM_DISTS_DIR '
31
- eval ' tar -xvzf $JULIAVM_DISTS_DIR /$file.tar.gz -C $JULIAVM_DISTS_DIR --strip-components=1'
32
- eval ' rm $JULIAVM_DISTS_DIR /$file.tar.gz'
29
+ eval ' mkdir $dists_dir '
30
+ eval ' wget $url -P $dists_dir '
31
+ eval ' tar -xvzf $dists_dir /$file.tar.gz -C $dists_dir --strip-components=1'
32
+ eval ' rm $dists_dir /$file.tar.gz'
33
33
fi
34
34
juliavm_use $1
35
35
}
36
36
37
37
juliavm_use (){
38
- EXEC_PATH=" $JULIAVM_WORK_DIR /dists/$1 /bin/julia"
38
+ if [[ " $2 " == ' -x86' ]]; then
39
+ EXEC_PATH=" $JULIAVM_WORK_DIR /dists/$1$2 /bin/julia"
40
+ elif [[ " $2 " == ' -64' ]]; then
41
+ EXEC_PATH=" $JULIAVM_WORK_DIR /dists/$1 /bin/julia"
42
+ else
43
+ EXEC_PATH=" $JULIAVM_WORK_DIR /dists/$1 /bin/julia"
44
+ fi
39
45
sed -i /' alias julia=' /d ~ /.bashrc
40
- echo " You're now using Julia $1 "
46
+ echo " You're now using Julia $1$2 "
41
47
echo " alias julia='$EXEC_PATH '" >> ~ /.bashrc && exec bash
42
48
}
43
49
@@ -47,7 +53,14 @@ juliavm_ls(){
47
53
}
48
54
49
55
juliavm_version_is_available_locale (){
50
- VERSION_DIR=" $JULIAVM_WORK_DIR /dists/$1 "
56
+ if [[ " $2 " == ' -x86' ]]; then
57
+ VERSION_DIR=" $JULIAVM_WORK_DIR /dists/$1$2 "
58
+ elif [[ " $2 " == ' -x64' ]]; then
59
+ VERSION_DIR=" $JULIAVM_WORK_DIR /dists/$1 "
60
+ else
61
+ VERSION_DIR=" $JULIAVM_WORK_DIR /dists/$1 "
62
+ fi
63
+
51
64
if [ -d " $VERSION_DIR " ]; then
52
65
return 0
53
66
else
@@ -58,8 +71,8 @@ juliavm_version_is_available_locale(){
58
71
}
59
72
60
73
juliavm_version_is_available_remote (){
61
- file=$( juliavm_get_file_name $1 )
62
- url=$( juliavm_get_download_url $1 )
74
+ file=$( juliavm_get_file_name $1 $2 )
75
+ url=$( juliavm_get_download_url $1 $2 )
63
76
if eval " curl --output /dev/null --silent --head --fail \" $url \" " ; then
64
77
return 0
65
78
else
@@ -69,20 +82,71 @@ juliavm_version_is_available_remote(){
69
82
fi
70
83
}
71
84
85
+
86
+ juliavm_get_file_name (){
87
+ if [[ " $2 " == ' -x86' ]]; then
88
+ file=' julia-' $1 ' -linux-i686'
89
+ echo $file
90
+ elif [[ " $2 " == ' -x64' ]]; then
91
+ file=' julia-' $1 ' -linux-x86_64'
92
+ echo $file
93
+ else
94
+ file=' julia-' $1 ' -linux-x86_64'
95
+ echo $file
96
+ fi
97
+ }
98
+
99
+ juliavm_get_download_url (){
100
+ file=$( juliavm_get_file_name $1 $2 )
101
+ major=${1: 0: 3} ' /'
102
+
103
+ if [[ " $2 " == ' -x86' ]]; then
104
+ arch=' x86/'
105
+ url=$JULIAVM_JULIA_AWS$arch$major$file ' .tar.gz'
106
+ echo $url
107
+ elif [[ " $2 " == ' -x64' ]]; then
108
+ arch=' x64/'
109
+ url=$JULIAVM_JULIA_AWS$arch$major$file ' .tar.gz'
110
+ echo $url
111
+ else
112
+ arch=' x64/'
113
+ url=$JULIAVM_JULIA_AWS$arch$major$file ' .tar.gz'
114
+ echo $url
115
+ fi
116
+ }
117
+
118
+ juliavm_get_dist_dir (){
119
+ if [[ " $2 " == ' -x86' ]]; then
120
+ dist_dir=$JULIAVM_WORK_DIR ' /dists/' $1$2
121
+ echo $dist_dir
122
+ elif [[ " $2 " == ' -x64' ]]; then
123
+ dist_dir=$JULIAVM_WORK_DIR ' /dists/' $1
124
+ echo $dist_dir
125
+ else
126
+ dist_dir=$JULIAVM_WORK_DIR ' /dists/' $1
127
+ echo $dist_dir
128
+ fi
129
+ }
130
+
131
+
72
132
juliavm_update (){
73
133
eval ' cd $JULIAVM_WORK_DIR && git pull origin master'
74
134
eval ' mv $JULIAVM_WORK_DIR/juliavm.sh $DIR/juliavm'
75
135
}
76
136
77
137
78
138
juliavm_help () {
79
- echo " install x.y.z - install x.y.x version"
80
- echo " use x.y.z - use x.y.x version"
81
- echo " ls-remote - list all remote versions"
82
- echo " ls - list all locale versions"
83
- echo " update - update juliavm with latest resources"
84
- echo " uninstall - uninstall juliavm and all julia versions downloaded inside juliavm"
85
- echo " help - list all commands"
139
+ echo " install x.y.z install x.y.x version [ARCHITECTURE]"
140
+ echo " use x.y.z use x.y.x version [ARCHITECTURE]"
141
+ echo " ls-remote list all remote versions"
142
+ echo " ls list all locale versions"
143
+ echo " update update juliavm with latest resources"
144
+ echo " uninstall uninstall juliavm and all julia versions downloaded inside juliavm"
145
+ echo " help list all commands"
146
+ echo " "
147
+ echo " ARCHITECTURE options (if you don't pass unix 64 bits will be assumed):"
148
+ echo " -x64 unix 64 bits"
149
+ echo " -x86 unix 32 bits"
86
150
}
87
151
88
152
juliavm_uninstall (){
@@ -92,29 +156,17 @@ juliavm_uninstall(){
92
156
eval " rm -r ~/.juliavm"
93
157
}
94
158
95
- juliavm_get_file_name (){
96
- file=' julia-' $1 ' -linux-x86_64'
97
- echo $file
98
- }
99
-
100
- juliavm_get_download_url (){
101
- file=$( juliavm_get_file_name $1 )
102
- major=${1: 0: 3} ' /'
103
- url=$JULIAVM_JULIA_AWS$major$file ' .tar.gz'
104
- echo $url
105
- }
106
-
107
159
if [[ " $1 " == ' ls-remote' ]]; then
108
160
juliavm_ls_remote
109
161
elif [[ " $1 " == ' install' ]]; then
110
- if juliavm_version_is_available_remote $2 ; then
111
- juliavm_install $2
162
+ if juliavm_version_is_available_remote $2 $3 ; then
163
+ juliavm_install $2 $3
112
164
fi
113
165
elif [[ " $1 " == ' ls' ]]; then
114
166
juliavm_ls $2
115
167
elif [[ " $1 " == ' use' ]]; then
116
- if juliavm_version_is_available_locale $2 ; then
117
- juliavm_use $2
168
+ if juliavm_version_is_available_locale $2 $3 ; then
169
+ juliavm_use $2 $3
118
170
fi
119
171
elif [[ " $1 " == ' update' ]]; then
120
172
juliavm_update
0 commit comments