diff options
Diffstat (limited to 'git-shell-commands/change-default-branch')
-rwxr-xr-x | git-shell-commands/change-default-branch | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/git-shell-commands/change-default-branch b/git-shell-commands/change-default-branch new file mode 100755 index 0000000..40df253 --- /dev/null +++ b/git-shell-commands/change-default-branch @@ -0,0 +1,20 @@ +#!/bin/bash +# * change-default-branch REPO BRANCH +# Change the default branch (it starts out as 'master') +# Example: change-default-branch packages/libretools master + +set -e + +repo=$1; shift + +repo="$(sed -r 's,^/*,,' <<<"$repo")" +_repo="$(sed -r -e '/(^|\/)\.\.($|\/)/d' -e "s,[^A-Za-z0-9\./_~-],,g" <<<"$repo")" +test "$repo" = "$_repo" || { printf 'Illegal name: %s\n' "${repo}"; exit 1; } + +if test -d "$repo".git; then + echo "ref: refs/heads/${*}" > "${repo}".git/HEAD + echo 'This make take some time to be reflected in the web interface. LOL caching.' +else + printf 'Does not exist: %s\n' "${repo}" + exit 1 +fi |