dotfiles/.local/bin/scripts/git-repo

24 lines
674 B
Bash
Executable File

#!/bin/sh
# Translate different repo notations into ssh
# Usage:
# git repo <url>
# git repo <host> <repo> [user]
test "$1" = https && https=true && shift
case "$1" in
(http*) echo "$1" | sed "s|.*//\([^/]*\)/\(.*\)|git@\1:\2.git|" ;;
(git:*|ssh:*) echo "$1" ;;
(*)
case $1 in
(socha) user=software-challenge; host=git@github.com;;
(hub) host=git@github.com;;
(lab) host=git@gitlab.com;;
(*) host=${1:-gitea@git.jfischer.org};;
esac
user=${3:-${user:-$(git config user.name)}}
repo=${2:-$(basename $PWD)}
if test "$https"
then echo "https://${host#git*@}/$user/$repo"
else echo "$host:$user/$repo.git"
fi
esac