diff options
author | Raymaekers Luca <raymaekers.luca@gmail.com> | 2024-09-18 01:33:39 +0200 |
---|---|---|
committer | Raymaekers Luca <raymaekers.luca@gmail.com> | 2024-09-18 01:33:39 +0200 |
commit | c60ce995afab75aaeab193357bb76510ea7a725d (patch) | |
tree | 506dc0db44e43ad949629b782eb25939652f2830 /bin/extra/ginit | |
parent | ee13fd88724422f06fd5da0ca940e6ed28e67e17 (diff) |
checkpoint
Diffstat (limited to 'bin/extra/ginit')
-rwxr-xr-x | bin/extra/ginit | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/bin/extra/ginit b/bin/extra/ginit new file mode 100755 index 0000000..b9e44a6 --- /dev/null +++ b/bin/extra/ginit @@ -0,0 +1,30 @@ +#!/bin/sh + +# Create a clone of the current git repository on a remote + +# Expects the remote to have a git user 'git@remote.net' + +if [ -z "$1" ] ;then + >&2 printf 'ginit <remote>\n' + exit 1 +fi + +git_current_branch () { + local ref + ref=$(__git_prompt_git symbolic-ref --quiet HEAD 2> /dev/null) + local ret=$? + if [ "$ret" -ne 0 ] + then + [ "$ret" -eq 128 ] && return + ref=$(__git_prompt_git rev-parse --short HEAD 2> /dev/null) || return + fi + echo ${ref#refs/heads/} +} + +remote="$1" +name="$(basename "$(git rev-parse --show-toplevel)")" +[ "$name" ] || exit 1 + +ssh "git@$remote" "git init --bare $name.git" +git remote add "$remote" "git@$remote":"$name.git" +git push "$remote" $(git_current_branch) |