> + modules="$modules $m"
> + grep $m $substat > /dev/null 2>&1 || $GIT submodule status $module >> $substat
> + else
> + echo "warn: ignoring non-existent submodule $m"
What is the rational for ignoring non-existing submodules, i.e. how do the arguments to
the script go stale as you say in the patch description?
For example when a Makefile calls the script before the Makefile itself is rebuilt.
I'm asking because the fedora spec file initializes a new git repo in order to apply
patches so the script exits with 0.
You mean it succeeds even if roms/SLOF is empty?
Nothing that cannot be worked around ofc.
> + fi
> + done
> +else
> + modules=$maybe_modules
> fi
>
> -if test -n "$maybe_modules" && test -z "$GIT"
> -then
> - echo "$0: unexpectedly called with submodules but git binary not found"
> - exit 1
> -fi
> -
> -modules=""
> -for m in $maybe_modules
> -do
> - $GIT submodule status $m 1> /dev/null 2>&1
> - if test $? = 0
> - then
> - modules="$modules $m"
> - else
> - echo "warn: ignoring non-existent submodule $m"
> - fi
> -done
> -
> case "$command" in
> status|validate)
> - test -f "$substat" || validate_error "$command"
> - test -z "$maybe_modules" && exit 0
> for module in $modules; do
> - check_updated $module || validate_error "$command"
> + if is_git; then
> + check_updated $module || validate_error "$command"
> + elif ! test -d $module; then
archive-source.sh creates an empty directory for e.g. roms/SLOF,
so this check succeeds even if the submodule sources are unavailable.
Something like
elif ! test -d $module || test -z "$(ls -A "$module")"; then
Or (set "$module"/* && test -e "$1").
Paolo
works.
> + echo "$0: sources not available for $module and $no_git_error"
> + validate_error "$command"
> + fi
> done
> - exit 0
> ;;
> +
> update)
> - test -e $substat || touch $substat
> - test -z "$maybe_modules" && exit 0
> + is_git || {
> + echo "$0: unexpectedly called with submodules but $no_git_error"
> + exit 1
> + }
>
> $GIT submodule update --init $modules 1>/dev/null
> test $? -ne 0 && update_error "failed to update modules"