diff options
Diffstat (limited to 'b2qt-init-build-env')
-rwxr-xr-x | b2qt-init-build-env | 37 |
1 files changed, 27 insertions, 10 deletions
diff --git a/b2qt-init-build-env b/b2qt-init-build-env index 29657a0..1d598a5 100755 --- a/b2qt-init-build-env +++ b/b2qt-init-build-env | |||
@@ -23,15 +23,28 @@ | |||
23 | 23 | ||
24 | set -e | 24 | set -e |
25 | 25 | ||
26 | if [ $# -ne 1 ]; then | 26 | usage() { |
27 | echo "Usage: $0 <yocto build directory>" | 27 | echo "Usage: $0 <yocto build directory> [--force]" |
28 | exit 1 | 28 | } |
29 | fi | ||
30 | 29 | ||
31 | mkdir -p ${1} | 30 | while test -n "$1"; do |
31 | case "$1" in | ||
32 | "--help" | "-h") | ||
33 | usage | ||
34 | exit 0 | ||
35 | ;; | ||
36 | "--force" | "-f") | ||
37 | FORCE_UPDATE=1 | ||
38 | ;; | ||
39 | *) | ||
40 | BUILDDIR=$1 | ||
41 | ;; | ||
42 | esac | ||
43 | shift | ||
44 | done | ||
32 | 45 | ||
33 | DIR=$(readlink -f $(dirname $0)) | 46 | DIR=$(readlink -f $(dirname $0)) |
34 | BUILDDIR=$(readlink -f $1) | 47 | BUILDDIR=$(readlink -f $BUILDDIR) |
35 | 48 | ||
36 | checkout() { | 49 | checkout() { |
37 | REPO=$1 | 50 | REPO=$1 |
@@ -41,14 +54,18 @@ checkout() { | |||
41 | fi | 54 | fi |
42 | REF=${2%%:*} | 55 | REF=${2%%:*} |
43 | SHA1=${2##*:} | 56 | SHA1=${2##*:} |
44 | if [ ! -d ${BUILDDIR}/${REPODIR} ]; then | 57 | mkdir -p ${BUILDDIR}/${REPODIR} |
45 | mkdir ${BUILDDIR}/${REPODIR} | 58 | cd ${BUILDDIR}/${REPODIR} |
46 | cd ${BUILDDIR}/${REPODIR} | 59 | if [ ! -d ${BUILDDIR}/${REPODIR}/.git ]; then |
60 | echo "Checking out ${REPODIR}" | ||
47 | git init | 61 | git init |
48 | git remote add origin ${REPO} -f | 62 | git remote add origin ${REPO} -f |
49 | git checkout ${REF} | 63 | git checkout ${REF} |
50 | git reset --hard ${SHA1} | 64 | git reset --hard ${SHA1} |
51 | cd - | 65 | elif [ -n "${FORCE_UPDATE}" ]; then |
66 | echo "Updating ${REPODIR}" | ||
67 | git fetch origin | ||
68 | git reset --hard ${SHA1} | ||
52 | fi | 69 | fi |
53 | } | 70 | } |
54 | 71 | ||