#!/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 directory for $repoName.." mkdir $reposDirectory/$repoName echo "Initializing bare repository and setting permissions..." git init --bare $reposDirectory/$repoName chown git:git $reposDirectory/$repoName --recursive 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