Files
MaaAssistantArknights/.github/scripts/sync-optional-submodules.sh
Halo 98dd6f7ba1 feat(Avalonia): V0.2 新构建跨平台前端界面MAAUnified,合并代码请求 (#16048)
* feat(MaaUnified): MaaUnified构建完成,作为submodule加入

* fix(MaaUnified): 修复自动构建时 submodule拉取错误问题

* feat(MaaUnified): MaaUnified submodule更换为组织仓库

* ci: do not fetch useless module

---------

Co-authored-by: MistEO <mistereo@hotmail.com>
2026-04-17 22:33:33 +08:00

69 lines
1.4 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
mode="init"
depth=""
declare -a paths=()
while (($# > 0)); do
case "$1" in
--init)
mode="init"
shift
;;
--remote)
mode="remote"
shift
;;
--depth)
depth="$2"
shift 2
;;
--)
shift
paths+=("$@")
break
;;
*)
paths+=("$1")
shift
;;
esac
done
if ((${#paths[@]} == 0)); then
echo "Usage: $0 [--init|--remote] [--depth N] path [path ...]" >&2
exit 64
fi
is_submodule_path() {
local path="$1"
git config -f .gitmodules --get-regexp '^submodule\..*\.path$' 2>/dev/null \
| awk '{ print $2 }' \
| grep -Fxq "$path"
}
for path in "${paths[@]}"; do
if ! is_submodule_path "$path"; then
echo "Skipping $path: not configured as a submodule in .gitmodules."
continue
fi
if [[ "$mode" == "remote" ]]; then
echo "Updating submodule: $path"
git submodule update --remote "$path"
continue
fi
if [[ -n "$depth" ]]; then
echo "Initializing submodule: $path (depth=$depth)"
git submodule update --init --depth "$depth" "$path"
continue
fi
echo "Initializing submodule: $path"
git submodule update --init "$path"
done