void/scripts/gitremote

80 lines
3.6 KiB
Bash
Executable File

#!/bin/sh
# git remote setup script - developed by acidvegas (https://git.acid.vegas)
#
# note: This assumes the directory structure of $HOME/dev/git/$USER/$REPO for each repository.
#
# usage:
# gitremote | Update current working directory repository
# gitremote -a | Update every repository
ACIDGIT="flamingo"
update_repo() {
DIR=$1
USER=$(basename $(dirname $(dirname $DIR)))
REPO=$(basename $(dirname $DIR))
echo "updating $USER/$REPO..."
git -C $DIR remote remove origin
if [ $REPO = 'acid.vegas' ]; then
git -C $DIR remote add origin git@github.com:$USER/acidvegas.github.io.git
git -C $DIR remote set-url --add --push origin git@github.com:$USER/acidvegas.github.io.git
git -C $DIR remote set-url --add --push origin git@gitlab.com:$USER/acidvegas.gitlab.io.git
git -C $DIR remote set-url --add --push origin git@$ACIDGIT:$USER/$REPO.git
git -C $DIR remote set-url --add --push origin acidgit:$REPO.git
elif [ $REPO = 'internetrelaychat.org' ]; then
git -C $DIR remote add origin git@github.com:internet-relay-chat/internet-relay-chat.github.io.git
git -C $DIR remote set-url --add --push origin git@github.com:internet-relay-chat/internet-relay-chat.github.io.git
git -C $DIR remote set-url --add --push origin git@gitlab.com:$USER/internetrelaychat.gitlab.io.git
git -C $DIR remote set-url --add --push origin git@git.sr.ht:~acidvegas/$REPO
git -C $DIR remote set-url --add --push origin acidgit:$REPO.git
elif [ $USER = 'internetrelaychat' ]; then
git -C $DIR remote add origin git@github.com:internet-relay-chat/$REPO.git
git -C $DIR remote set-url --add --push origin git@github.com:internet-relay-chat/$REPO.git
git -C $DIR remote set-url --add --push origin git@gitlab.com:$USER/$REPO.git
git -C $DIR remote set-url --add --push git@$ACIDGIT:$USER/$REPO.git
git -C $DIR remote set-url --add --push origin acidgit:$REPO.git
elif [ $REPO = 'supernets.org' ]; then
git -C $DIR remote add origin git@github.com:$USER/supernets.github.io.git
git -C $DIR remote set-url --add --push origin git@github.com:$USER/supernets.github.io.git
git -C $DIR remote set-url --add --push origin git@gitlab.com:$USER/supernets.gitlab.io.git
git -C $DIR remote set-url --add --push origin git@$ACIDGIT:$USER/$REPO.git
git -C $DIR remote set-url --add --push origin acidgit:$REPO.git
else
git -C $DIR remote add origin git@github.com:$USER/$REPO.git
git -C $DIR remote set-url --add --push origin git@github.com:$USER/$REPO.git
git -C $DIR remote set-url --add --push origin git@gitlab.com:$USER/$REPO.git
git -C $DIR remote set-url --add --push origin git@codeberg.org:$USER/$REPO.git
git -C $DIR remote set-url --add --push origin git@$ACIDGIT:$USER/$REPO.git
git -C $DIR remote set-url --add --push origin acidgit:$REPO.git
fi
git -C $DIR config user.signingkey 441EB0F297E0DCF0AEF2F711EF4B922DB85DC9DE
if [ -f $DIR/description ]; then
if [ "$(cat $1/description)" = "Unnamed repository; edit this file 'description' to name the repository." ]; then
echo "Enter a description for $REPO:"
read DESC
echo "$DESC" > $DIR/description
fi
else
echo "Enter a description for $REPO:"
read DESC
echo "$DESC" > $DIR/description
fi
cp $HOME/.scripts/irc-post-commit-hook $DIR/hooks/post-commit
echo $USER > $DIR/owner
echo "https://git.acid.vegas/$REPO.git" > $DIR/url
}
if [ "$#" = '1' ]; then
if [ $1 = '-a' ]; then
for d in $(find $HOME/dev/git -type d -name mirror -prune -o -type d -name .git -print | sort); do
update_repo $d
done
fi
else
if [ -d $PWD/.git ]; then
update_repo $PWD/.git
else
echo "invalid repository: missing .git directory"
fi
fi