Browse code

Clean and simplify vendor.sh while making it easier to maintain as well

Docker-DCO-1.1-Signed-off-by: Andrew Page <admwiggin@gmail.com> (github: tianon)

Tianon Gravi authored on 2014/01/16 14:16:23
Showing 1 changed files
... ...
@@ -1,54 +1,52 @@
1 1
 #!/bin/bash
2
+set -e
2 3
 
3
-# Downloads dependencies into vendor/ directory
4
-if [[ ! -d vendor ]]; then
5
-  mkdir vendor
6
-fi
7
-vendor_dir=${PWD}/vendor
8
-
9
-rm_pkg_dir () {
10
-  PKG=$1
11
-  REV=$2
12
-  (
13
-    set -e
14
-    cd $vendor_dir
15
-    if [[ -d src/$PKG ]]; then
16
-      echo "src/$PKG already exists. Removing."
17
-      rm -fr src/$PKG
18
-    fi
19
-  )
20
-}
4
+cd "$(dirname "$BASH_SOURCE")/.."
21 5
 
22
-git_clone () {
23
-  PKG=$1
24
-  REV=$2
25
-  (
26
-    set -e
27
-    rm_pkg_dir $PKG $REV
28
-    cd $vendor_dir && git clone http://$PKG src/$PKG
29
-    cd src/$PKG && git checkout -f $REV && rm -fr .git
30
-  )
31
-}
32
-
33
-hg_clone () {
34
-  PKG=$1
35
-  REV=$2
36
-  (
37
-    set -e
38
-    rm_pkg_dir $PKG $REV
39
-    cd $vendor_dir && hg clone http://$PKG src/$PKG
40
-    cd src/$PKG && hg checkout -r $REV && rm -fr .hg
41
-  )
6
+# Downloads dependencies into vendor/ directory
7
+mkdir -p vendor
8
+cd vendor
9
+
10
+clone() {
11
+	vcs=$1
12
+	pkg=$2
13
+	rev=$3
14
+	
15
+	pkg_url=https://$pkg
16
+	target_dir=src/$pkg
17
+	
18
+	echo -n "$pkg @ $rev: "
19
+	
20
+	if [ -d $target_dir ]; then
21
+		echo -n 'rm old, '
22
+		rm -fr $target_dir
23
+	fi
24
+	
25
+	echo -n 'clone, '
26
+	case $vcs in
27
+		git)
28
+			git clone --quiet --no-checkout $pkg_url $target_dir
29
+			( cd $target_dir && git reset --quiet --hard $rev )
30
+			;;
31
+		hg)
32
+			hg clone --quiet --updaterev $rev $pkg_url $target_dir
33
+			;;
34
+	esac
35
+	
36
+	echo -n 'rm VCS, '
37
+	( cd $target_dir && rm -rf .{git,hg} )
38
+	
39
+	echo done
42 40
 }
43 41
 
44
-git_clone github.com/kr/pty 3b1f6487b
42
+clone git github.com/kr/pty 3b1f6487b
45 43
 
46
-git_clone github.com/gorilla/context/ 708054d61e5
44
+clone git github.com/gorilla/context 708054d61e5
47 45
 
48
-git_clone github.com/gorilla/mux/ 9b36453141c
46
+clone git github.com/gorilla/mux 9b36453141c
49 47
 
50
-git_clone github.com/syndtr/gocapability 3454319be2
48
+clone git github.com/syndtr/gocapability 3454319be2
51 49
 
52
-hg_clone code.google.com/p/go.net 84a4013f96e0
50
+clone hg code.google.com/p/go.net 84a4013f96e0
53 51
 
54
-hg_clone code.google.com/p/gosqlite 74691fb6f837
52
+clone hg code.google.com/p/gosqlite 74691fb6f837