From 5f09ce4e66b9804522408c65257e1893a2b80fee Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Wed, 13 Sep 2023 00:15:51 +0200 Subject: [PATCH] support/download/git: fix shellcheck errors The quoting around the expansion of ${relative_dir} was indeed incorrect since it was introduced back in 8fe9894f655f (suport/download: fix git wrapper with submodules on older git versions): it is in fact already quoted as part of the whole sed expression. ${GIT} can contain more than one item, but we don't care about splitting on spaces when we just print it for debug, so we can just quote it rather than add an exception. Signed-off-by: Yann E. MORIN Signed-off-by: Thomas Petazzoni (cherry picked from commit bcee3ca6d66d30de4b0cd8186ce4c72020705df8) Signed-off-by: Peter Korsgaard --- .checkpackageignore | 1 - support/download/git | 9 +++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.checkpackageignore b/.checkpackageignore index 3a9a6fb58c..67529ed0d4 100644 --- a/.checkpackageignore +++ b/.checkpackageignore @@ -1637,7 +1637,6 @@ support/download/check-hash Shellcheck support/download/cvs Shellcheck support/download/dl-wrapper Shellcheck support/download/file Shellcheck -support/download/git Shellcheck support/download/go-post-process Shellcheck support/download/hg Shellcheck support/download/scp Shellcheck diff --git a/support/download/git b/support/download/git index 729c553f8f..6654d98a00 100755 --- a/support/download/git +++ b/support/download/git @@ -21,6 +21,7 @@ set -e # Environment: # GIT : the git command to call +# shellcheck disable=SC1090 # Only provides mk_tar_gz() . "${0%/*}/helpers" # Save our path and options in case we need to call ourselves again @@ -83,12 +84,13 @@ set -E # being expanded a second time (in case there are spaces in them) _git() { if [ -z "${quiet}" ]; then - printf '%s ' GIT_DIR="${git_cache}/.git" ${GIT} "${@}"; printf '\n' + printf '%s ' GIT_DIR="${git_cache}/.git" "${GIT}" "${@}"; printf '\n' fi _plain_git "$@" } # Note: please keep command below aligned with what is printed above _plain_git() { + # shellcheck disable=SC2086 # We want word-splitting for GIT eval GIT_DIR="${git_cache}/.git" ${GIT} "${@}" } @@ -174,6 +176,7 @@ fi # the working copy as well as the repository, which means submodules # will not be cached for older versions. # +# shellcheck disable=SC2016 # Will be expanded by git-foreach cmd='printf "Deregistering submodule \"%s\"\n" "${path}" && cd .. && rm -rf "${path##*/}"' _git submodule --quiet foreach "'${cmd}'" @@ -200,11 +203,12 @@ if [ ${recurse} -eq 1 ]; then # that the archives are reproducible across a wider range of git # versions. However, we can't do that if git is too old and uses # full repositories for submodules. + # shellcheck disable=SC2016 # Will be expanded by git-foreach cmd='printf "%s\n" "${path}/"' for module_dir in $( _plain_git submodule --quiet foreach "'${cmd}'" ); do [ -f "${module_dir}/.git" ] || continue relative_dir="$( sed -r -e 's,/+,/,g; s,[^/]+/,../,g' <<<"${module_dir}" )" - sed -r -i -e "s:^gitdir\: $(pwd)/:gitdir\: "${relative_dir}":" "${module_dir}/.git" + sed -r -i -e "s:^gitdir\: $(pwd)/:gitdir\: ${relative_dir}:" "${module_dir}/.git" done fi @@ -214,6 +218,7 @@ if [ ${large_file} -eq 1 ]; then _git lfs fetch _git lfs checkout # If there are also submodules, recurse into them, + # shellcheck disable=SC2086 # We want word-splitting for GIT if [ ${recurse} -eq 1 ]; then _git submodule foreach --recursive ${GIT} lfs install --local _git submodule foreach --recursive ${GIT} lfs fetch