From c43be87402ae4467a8731e8918b40e6b2a1af0da Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Wed, 29 Jan 2020 10:50:18 +0100 Subject: archPackagesUpdate: cache submodules --- archPackagesUpdate | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'archPackagesUpdate') diff --git a/archPackagesUpdate b/archPackagesUpdate index e068bc5c..31366436 100755 --- a/archPackagesUpdate +++ b/archPackagesUpdate @@ -204,7 +204,10 @@ fi echo '... done' -${aufRechenknecht} && pkgSrcDir="${pkgSrcDir}/archPackages" +if ${aufRechenknecht}; then + submoduleDir="${pkgSrcDir}/submodules" + pkgSrcDir="${pkgSrcDir}/archPackages" +fi # extract git ${branch} git -C "${pkgSrcDir}" archive --format tar "${branch}" | \ @@ -275,8 +278,24 @@ if [ -f '.gitmodules' ]; then continue fi mkdir -p "${path}" - >&2 printf 'cloning %s into %s ...' "${url}" "${path}" - git clone -q "${url}" "${path}" + >&2 printf 'submodule %s: ' "${path}" + if [ -n "${submoduleDir}" ]; then + upstream="${submoduleDir}/${path}" + >&2 printf ' cached' + if [ ! -d "${upstream}" ]; then + >&2 printf ', cloning ...' + git clone -q "${url}" "${upstream}" + >&2 printf ' done' + fi + else + upstream="${pkgSrcDir}/${path}" + >&2 printf ' true submodule' + fi + >&2 printf ', pulling ...' + git -C "${upstream}" pull -q --ff-only + >&2 printf ' done' + >&2 printf ', cloning ...' + git clone -q "${upstream}" "${path}" >&2 printf ' done.\n' done fi -- cgit v1.2.3-54-g00ecf