diff options
-rwxr-xr-x | archPackagesUpdate | 33 | ||||
-rwxr-xr-x | update-submodule | 25 |
2 files changed, 31 insertions, 27 deletions
diff --git a/archPackagesUpdate b/archPackagesUpdate index 313664360..d1636341d 100755 --- a/archPackagesUpdate +++ b/archPackagesUpdate @@ -263,6 +263,7 @@ unset verss unset repos if [ -f '.gitmodules' ]; then + >&2 printf 'updating submodules ...' sed -n ' /^\s*path = /{ N @@ -271,35 +272,13 @@ if [ -f '.gitmodules' ]; then s,ssh://aur@aur.archlinux.org/,https://aur.archlinux.org/, p } - ' '.gitmodules' | \ - while read -r path url; do - if [ -n "$(ls -A "${path}")" ]; then - git submodule update -- "${path}" - continue - fi - mkdir -p "${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 + ' '.gitmodules' \ + | parallel -j0 "${pkgSrcDir}/update-submodule" "${pkgSrcDir}" "${submoduleDir}" + >&2 printf ' done.\n' fi +exit 42 + if ${aufRechenknecht}; then # collect packages diff --git a/update-submodule b/update-submodule new file mode 100755 index 000000000..3bd04b7a4 --- /dev/null +++ b/update-submodule @@ -0,0 +1,25 @@ +#!/bin/bash + +url="$1" +pkgSrcDir="${url%% *}" +url="${url#${path} }" +submoduleDir="${url%% *}" +url="${url#${path} }" +path="${url%% *}" +url="${url#${path} }" + +if [ -n "$(ls -A "${path}")" ]; then + git -C "${pkgSrcDir}" submodule update 2>/dev/null || true + exit +fi +mkdir -p "${path}" +if [ -n "${submoduleDir}" ]; then + upstream="${submoduleDir}/${path}" + if [ ! -d "${upstream}" ]; then + git clone -q "${url}" "${upstream}" + fi +else + upstream="${pkgSrcDir}/${path}" +fi +git -C "${upstream}" pull -q --ff-only +git clone -q "${upstream}" "${path}" |