summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xrepo.sh65
1 files changed, 65 insertions, 0 deletions
diff --git a/repo.sh b/repo.sh
new file mode 100755
index 0000000..325decb
--- /dev/null
+++ b/repo.sh
@@ -0,0 +1,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] ]];
+ 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