summaryrefslogtreecommitdiff
path: root/clone
blob: 8d12f048080d14ff55bdd2bafedfd0b4b76edafa (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
#!/usr/bin/env bash

if [ $# -ne 1 ]; then
    echo "usage: clone <name>"
    exit 1
fi

set -xe

USER="compromyse"

base_dir="$HOME"
new_repo="${base_dir}/$1"

case $new_repo in
    *\.git)
	;;
    *)
	new_repo="${new_repo}.git"
	;;
esac

if [ -d "$new_repo" ]; then
    echo "$new_repo already exists"
    exit 1
fi

mkdir "$new_repo"
git clone --bare "git@github.com:$USER/$1" "$new_repo"

pushd $new_repo > /dev/null

    for remote in $(git remote show); do
        git remote remove $remote
        git remote add github git@github.com:$USER/$1
        git fetch github
    done

    echo "$description" > description

    echo 'git push github -f --mirror' > "hooks/post-receive"
    chmod +x "hooks/post-receive"
popd > /dev/null