cassandra/.build/git/git-hooks/post-checkout/100-update-submodules.sh

49 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Redirect output to stderr.
exec 1>&2
#set -o xtrace
set -o errexit
set -o pipefail
set -o nounset
bin="$(cd "$(dirname "$0")" > /dev/null; pwd)"
_main() {
# In case the usage happens at a different layer, make sure to cd to the toplevel
local root_dir
root_dir="$(git rev-parse --show-toplevel)"
cd "$root_dir"
if ! git ls-files --error-unmatch .gitmodules &>/dev/null; then
# nothing to see here, look away!
return 0
fi
local extra_args=()
if [[ -n "${BUILD_OFFLINE:-}" ]]; then
echo "BUILD_OFFLINE is defined; using --no-fetch for submodule updates (local SHAs only)."
echo "If your submodules are not already available locally, expect this to error out."
extra_args+=(--no-fetch)
fi
git submodule update --init --recursive "${extra_args[@]}"
}
_main "$@"