blob: 2666cac09e356ed29adc9ef815a897a56a02e9cf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#!/bin/sh
# mirror-from [REPO_NAME] [GIT_URL]
# Configures a repo to pull updates from a remote git URL hourly.
# Pass empty URL to remove the mirror source.
# Example: mirror-from myrepo https://github.com/user/myrepo.git
if [ -z "$1" ]; then
echo "Usage: mirror-from [REPO_NAME] [GIT_URL]"
echo " mirror-from [REPO_NAME] - remove mirror source"
exit 1
fi
if [ ! -d "$1.git" ]; then
echo "Repository $1 does not exist"
exit 1
fi
REPO="$1"
REMOTE="$2"
REPO_PATH="$HOME/$REPO.git"
cd "$REPO_PATH" || exit 1
if [ -z "$REMOTE" ]; then
if git remote get-url mirror-from >/dev/null 2>&1; then
git remote remove mirror-from
echo "Removed mirror source for $REPO"
else
echo "No mirror source configured for $REPO"
fi
exit 0
fi
if git remote get-url mirror-to >/dev/null 2>&1; then
echo "Error: $REPO already has a mirror-to configured. Remove it first with: mirror-to $REPO"
exit 1
fi
if git remote get-url mirror-from >/dev/null 2>&1; then
git remote set-url mirror-from "$REMOTE"
else
git remote add mirror-from "$REMOTE"
fi
echo "Configured $REPO to mirror from $REMOTE"
echo "Mirrors run hourly. Logs: /var/log/git-mirrors.log"
|