summaryrefslogtreecommitdiff
path: root/repo.sh
blob: 9cde6d90989f6f0f086ab25e1090f04a860d1b55 (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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/bin/bash
reposDirectory=/home/git/repositories
reposList=/home/git/repos.list

echo "1) Create a new repo"
echo "2) Delete a repo"
read -p "Choose an option: " option

if [[ $option == 1 ]];
then
	read -p "What's the repo name? " repoName
	read -p "What's the repo description? [default: ''] " repoDesc
	# chronic hides output
	if chronic git config user.name && chronic git config user.email;
	then
		username=$(git config user.name)
		email="<$(git config user.email)>"
		echo "Your git configuration has a username and email set:"
		echo "Username: $username"
		echo "Email: $email"
		read -p "Set owner to your git config? [default: 'y'] (y/n) " usegc
		if [[ $usegc == [yY] ]] || [[ -z $usegc ]];
		then
			repoOwner="$username $email"
			echo "Author set to \"$repoOwner\""
		fi
	fi
	if [[ $usegc == [nN] ]] || [[ -z $usegc ]];
	then
		read -p "What's the owner name? [default: ''] " repoOwner
	fi
	echo "Performing magic wizardry..."

	echo "Adding repo to list..."
	echo $repoName >> $reposList

	echo "Creating $repoName directory and setting permissions..."
	mkdir $reposDirectory/$repoName
	chown git $reposDirectory/$repoName

	echo "Initializing bare repository..."
	git init --bare $reposDirectory/$repoName

	echo "Setting repository owner..."
	echo [gitweb] >> $reposDirectory/$repoName/config
	echo "owner = $repoOwner" >> $reposDirectory/$repoName/config

	echo "Setting repository description..."
	echo -n "" > $reposDirectory/$repoName/description
	if [[ -n "$repoDesc" ]];
	then
		echo "$repoDesc" >> $reposDirectory/$repoName/description
	fi
	echo "$repoName magically appeared!"

elif [[ $option == 2 ]];
then
	read -p "What's the repo name? " repoName
	echo "Performing magic wizardry..."
	echo "Finding line in list..."
	sed -i "/$repoName/d" $reposList
	echo "Deleting $repoName directory..."
	rm -rf $reposDirectory/$repoName
	echo "$repoName has vanished!"
fi