aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/checkout_layer_hash.sh
blob: a00dda44c2a8a04cdc88f91bed13a757cd4ffc4b (plain)
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
#!/bin/sh
# (C) 2015-12-12 Gunnar Andersson
# (C) 2016-10-25 Yong-iL Joh
# License: MPLv2

fail() {
   echo "FAILED."
   [ -n "$1" ] && echo "Message: " $@
   exit 1
}

# Store the location of these scripts
_DIR=$(dirname "$0")
META_IVI=$(readlink -f $_DIR/..)
MYDIR=$(readlink -f $_DIR)

layer=$1
[ -z "$layer" ] && fail "No layer name given"

# Extract revision from README in meta-ivi
cd "$META_IVI" || fail "Can't cd to meta-ivi directory"
revision=$($MYDIR/get_layer_info_from_README.sh $layer revision)
uri=$($MYDIR/get_layer_info_from_README.sh $layer URI)

# Fail if we could not fetch revision
[ -z "$revision" ] && fail "Revision extracted from README was empty"

# Checkout the right revision in this layer
if [ ! -d "$META_IVI/../$layer/.git" ]; then
   if [ -e "$META_IVI/../$layer" ]; then
      rm -rf "$META_IVI/../$layer"
   else
      cd "$META_IVI/.."
      git clone $uri
   fi
fi
cd "$META_IVI/../$layer" || fail "Can't cd to layer directory ($layer)"
git checkout $revision