diff options
| author | aavit <eirik.aavitsland@digia.com> | 2014-09-17 10:05:35 +0200 |
|---|---|---|
| committer | Eirik Aavitsland <eirik.aavitsland@digia.com> | 2014-09-18 12:52:09 +0300 |
| commit | 4c99bd2137f422a8b89ee6eeb0c516e60d15f137 (patch) | |
| tree | ac61e4ba5b33dde10a73dcb9e52e2a05be79e4e4 /b2qt-init-build-env | |
| parent | 84fa57bd27e7326d68fb8e5c065c4e4637baabfc (diff) | |
| download | meta-boot2qt-4c99bd2137f422a8b89ee6eeb0c516e60d15f137.tar.gz | |
Init script can now use existing build dir for clone reference
Add --reference <existing-build-dir> argument. If one has an already
checked out build directory, save download time and disk space by
reusing the git object storage. Ref. git clone --reference.
Change-Id: I89327597a29cb5e7e5c86acefcdf33e3ee42d0fc
Reviewed-by: Samuli Piippo <samuli.piippo@digia.com>
Diffstat (limited to 'b2qt-init-build-env')
| -rwxr-xr-x | b2qt-init-build-env | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/b2qt-init-build-env b/b2qt-init-build-env index 1d598a5..ec9f394 100755 --- a/b2qt-init-build-env +++ b/b2qt-init-build-env | |||
| @@ -24,7 +24,7 @@ | |||
| 24 | set -e | 24 | set -e |
| 25 | 25 | ||
| 26 | usage() { | 26 | usage() { |
| 27 | echo "Usage: $0 <yocto build directory> [--force]" | 27 | echo "Usage: $0 <yocto build directory> [--force] [--reference <other build directory>]" |
| 28 | } | 28 | } |
| 29 | 29 | ||
| 30 | while test -n "$1"; do | 30 | while test -n "$1"; do |
| @@ -36,6 +36,10 @@ while test -n "$1"; do | |||
| 36 | "--force" | "-f") | 36 | "--force" | "-f") |
| 37 | FORCE_UPDATE=1 | 37 | FORCE_UPDATE=1 |
| 38 | ;; | 38 | ;; |
| 39 | "--reference" | "-r") | ||
| 40 | shift | ||
| 41 | REFDIR=$1 | ||
| 42 | ;; | ||
| 39 | *) | 43 | *) |
| 40 | BUILDDIR=$1 | 44 | BUILDDIR=$1 |
| 41 | ;; | 45 | ;; |
| @@ -43,8 +47,16 @@ while test -n "$1"; do | |||
| 43 | shift | 47 | shift |
| 44 | done | 48 | done |
| 45 | 49 | ||
| 50 | if [ -z "${BUILDDIR}" ]; then | ||
| 51 | usage | ||
| 52 | exit 1 | ||
| 53 | fi | ||
| 54 | |||
| 46 | DIR=$(readlink -f $(dirname $0)) | 55 | DIR=$(readlink -f $(dirname $0)) |
| 47 | BUILDDIR=$(readlink -f $BUILDDIR) | 56 | BUILDDIR=$(readlink -f $BUILDDIR) |
| 57 | if [ -n "${REFDIR}" ]; then | ||
| 58 | REFDIR=$(readlink -f ${REFDIR}) | ||
| 59 | fi | ||
| 48 | 60 | ||
| 49 | checkout() { | 61 | checkout() { |
| 50 | REPO=$1 | 62 | REPO=$1 |
| @@ -59,6 +71,12 @@ checkout() { | |||
| 59 | if [ ! -d ${BUILDDIR}/${REPODIR}/.git ]; then | 71 | if [ ! -d ${BUILDDIR}/${REPODIR}/.git ]; then |
| 60 | echo "Checking out ${REPODIR}" | 72 | echo "Checking out ${REPODIR}" |
| 61 | git init | 73 | git init |
| 74 | if [ -n "${REFDIR}" ]; then | ||
| 75 | REPOREFDIR=${REFDIR}/${REPODIR}/.git/objects | ||
| 76 | if [ -d ${REPOREFDIR} ]; then | ||
| 77 | echo ${REPOREFDIR} > .git/objects/info/alternates | ||
| 78 | fi | ||
| 79 | fi | ||
| 62 | git remote add origin ${REPO} -f | 80 | git remote add origin ${REPO} -f |
| 63 | git checkout ${REF} | 81 | git checkout ${REF} |
| 64 | git reset --hard ${SHA1} | 82 | git reset --hard ${SHA1} |
