47 lines
1.0 KiB
Bash
Executable File
47 lines
1.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# A TTG workspace repóinak leklónozása a kategória-mappás struktúrába
|
|
# a scripts/repos.list alapján.
|
|
#
|
|
# Használat:
|
|
# ./clone-repos.sh [cél-mappa]
|
|
#
|
|
# Cél-mappa nélkül a devarea checkout szülőkönyvtárába (a workspace
|
|
# gyökerébe) klónoz. A már létező mappákat kihagyja, így ismételten
|
|
# futtatható.
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
ROOT="${1:-$(cd "$SCRIPT_DIR/../.." && pwd)}"
|
|
LIST="$SCRIPT_DIR/repos.list"
|
|
|
|
cloned=0
|
|
skipped=0
|
|
failed=0
|
|
|
|
while IFS='|' read -r path url; do
|
|
# kommentek és üres sorok
|
|
[[ -z "$path" || "$path" == \#* ]] && continue
|
|
|
|
target="$ROOT/$path"
|
|
|
|
if [ -e "$target/.git" ]; then
|
|
echo "skip $path (már létezik)"
|
|
skipped=$((skipped + 1))
|
|
continue
|
|
fi
|
|
|
|
mkdir -p "$(dirname "$target")"
|
|
if git clone "$url" "$target"; then
|
|
cloned=$((cloned + 1))
|
|
else
|
|
echo "HIBA $path ($url)" >&2
|
|
failed=$((failed + 1))
|
|
fi
|
|
done < "$LIST"
|
|
|
|
echo
|
|
echo "Kész: $cloned klónozva, $skipped kihagyva, $failed hiba."
|
|
[ "$failed" -eq 0 ]
|