add script to fetch subgit repos
This commit is contained in:
parent
b4fc540c87
commit
7eb71c1361
37
local/bin/subgit-fetch
Executable file
37
local/bin/subgit-fetch
Executable file
@ -0,0 +1,37 @@
|
||||
#!/bin/sh
|
||||
|
||||
task="$1"
|
||||
repo="$2"
|
||||
|
||||
set -e
|
||||
|
||||
if [ ! -d "$repo" ]; then
|
||||
mkdir -p "$repo"
|
||||
cd "$repo"
|
||||
git init
|
||||
else
|
||||
cd "$repo"
|
||||
fi
|
||||
|
||||
if [ ! -z "$(git status --porcelain)" ]; then
|
||||
echo "Requires a clean working tree" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# update existing submodules
|
||||
git submodule foreach git fetch origin
|
||||
git submodule foreach git reset --hard origin/master
|
||||
|
||||
for remote in $(ssh git@subgit.ugent.be task students -l "$task" | cut -f4); do
|
||||
if [ -d "$(basename "$remote")" ]; then
|
||||
true # exists
|
||||
elif [ -z "$(git ls-remote "$remote")" ]; then
|
||||
echo "No branches at $remote"
|
||||
else
|
||||
echo "adding $remote"
|
||||
git submodule --quiet add "$remote"
|
||||
fi
|
||||
done
|
||||
|
||||
git add .
|
||||
git commit -v
|
Loading…
Reference in New Issue
Block a user