diff options
-rwxr-xr-x | uploadNewGit.sh | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/uploadNewGit.sh b/uploadNewGit.sh index a4c7ec8..c2e6867 100755 --- a/uploadNewGit.sh +++ b/uploadNewGit.sh @@ -1,34 +1,37 @@ #!/bin/sh +set -e GITOLITE_ADMIN="$HOME/Projects/gitolite-admin" -gitdir=$(readlink -f "$(pwd)") -name=`basename "$gitdir" | cut -d / -f 2 | cut -d ' ' -f 1` +gitdir="$(readlink -f "$(pwd)")" +name="$(basename "$gitdir" | cut -d / -f 2 | cut -d ' ' -f 1)" description="$1" if [ ! -d "$gitdir/.git" ]; then - echo Not a git repo. + echo "$0 must be run at the root of a git repository." exit 1 fi if [ -z "$description" ]; then - echo You need to specify a description argument. + echo "Usage: $0 DESCRIPTION" exit 1 fi -pushd "$GITOLITE_ADMIN/conf" > /dev/null +cd "$GITOLITE_ADMIN/conf" echo "Writing config.." -(echo -echo " repo $name" -echo " RW+CD = $(whoami)" -echo " R = @all" -echo " owner = \"$(git config --get user.name)\"" -echo " desc = \"$description\"") >> gitolite.conf +cat >> gitolite.conf <<_EOF + + repo $name + RW+CD = $(whoami) + R = @all + owner = "$(git config --get user.name)" + desc = "$description" +_EOF git commit -a -m "Adding $name to repository." git push -popd > /dev/null +cd - > /dev/null -url=`git --git-dir=$GITOLITE_ADMIN/.git remote -v | grep push | cut -f 2 | cut -d ' ' -f 1 | sed "s/$(basename $GITOLITE_ADMIN)/$name/"` -git remote rm origin 2> /dev/null +url="$(git --git-dir="$GITOLITE_ADMIN/.git" remote -v | grep push | cut -f 2 | cut -d ' ' -f 1 | sed "s/$(basename "$GITOLITE_ADMIN")/$name/")" +git remote rm origin 2> /dev/null || true git remote add origin $url git push -u --all git push --tags |