From eebad0abb9f2dffa4d170887fa4bbc50892c99aa Mon Sep 17 00:00:00 2001 From: Dylan Bolger Date: Sun, 6 Mar 2022 17:52:20 -0600 Subject: Initial commit --- repo.sh | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100755 repo.sh 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 -- cgit v1.2.3