blob: 62690e3e06784a6f1eba4f99d25115194e4a2a6a (
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
45
46
47
48
49
|
SHELL=/bin/bash
# The git user home, from where repos are served
PREFIX=/srv/git
# The git user
USER=git
# The git-shell path
GIT_SHELL=/usr/bin/git-shell
# The hacking.git clone
HACKERS=$(shell pwd)
# Add all of your pubkeys
# TODO this can fail if you don't have any keys (why don't you)
bootstrap:
cat $(HOME)/.ssh/id_{rsa,ecdsa,dsa}.pub >>authorized_keys 2>/dev/null || true
git commit authorized_keys -m "Bootstraping hacking.git" ; \
# Create the user
user:
useradd --home $(PREFIX) \
--shell $(GIT_SHELL) \
--create-home \
--system \
--user-group \
$(USER)
# Check if we have at least a key
check:
if [ $(shell wc -l authorized_keys | cut -d' ' -f1) -eq 0 ]; then \
echo 'Add at least your key to authorized_keys!'; \
exit 1 ;\
fi
# Add the hackers repo to the local clone
install-local:
git remote add git git:hackers.git
cat ssh_config >>$(HOME)/.ssh/config
# Create the hackers.git bare repo and clone as .ssh
# Then create needed symlinks and add hooks to hackers.git
install: check
cd $(PREFIX); \
git clone --bare $(HACKERS) hackers.git && \
git clone hackers.git .ssh && \
chmod 700 $(PREFIX) && \
chmod 700 .ssh && \
chmod 600 .ssh/authorized_keys && \
ln -s $(PREFIX)/.ssh/git-hooks/hackers-update hackers.git/hooks/post-receive && \
ln -s $(PREFIX)/.ssh/git-shell-commands && \
chown -R $(USER):$(USER) $(PREFIX)
|