The new git-submodule.sh script writes .git-submodule-status to the source directory every time no matter what. This makes it conditional.
Signed-off-by: Alexey Kardashevskiy <a...@ozlabs.ru> --- Changes: v2: * fixed "status" branch too --- scripts/git-submodule.sh | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/scripts/git-submodule.sh b/scripts/git-submodule.sh index d8fbc7e47e..ae038d2e58 100755 --- a/scripts/git-submodule.sh +++ b/scripts/git-submodule.sh @@ -23,16 +23,21 @@ then exit 1 fi +substat_tmp=$(mktemp) + case "$command" in status) test -f "$substat" || exit 1 - trap "rm -f ${substat}.tmp" EXIT - git submodule status $modules > "${substat}.tmp" - diff "${substat}" "${substat}.tmp" >/dev/null - exit $? + git submodule status $modules > "$substat_tmp" + diff "${substat_tmp}" "${substat}" > /dev/null ;; update) git submodule update --init $modules 1>/dev/null 2>&1 - git submodule status $modules > "${substat}" + git submodule status $modules > "$substat_tmp" + diff "${substat_tmp}" "${substat}" || mv "${substat_tmp}" "${substat}" ;; esac + +myret=$? +rm "${substat_tmp}" 2>/dev/null +exit $myret -- 2.11.0