bashrcd/git.sh

181 lines
4.2 KiB
Bash

# vim: syn=sh ts=4 sts=4 sw=4 smartindent autoindent expandtab ff=unix
#git-initialize() {
# USAGE="git-initialize -u USER -e EMAIL [-b DEFAULT_BRANCH] [-S SSH_KEY] [-s SSH_COMMAND]"
# args=$( getopt "b:e:s:S:u:" $* )
# if [ $? -ne 0 ]; then
# echo "$USAGE"
# return 2
# fi
# local default_branch=main
# local user="$USER"
# local email=""
# local ssh_key=""
# local ssh_command=""
# set -- $args
# while :; do
# case "$1" in
# -b)
# local default_branch="$2"
# shift; shift
# ;;
# -e)
# local email="$2"
# shift; shift
# ;;
# -S)
# local ssh_key="$2"
# shift; shift
# ;;
# -s)
# local ssh_command="$2"
# shift; shift
# ;;
# -u)
# local user="$2"
# shift; shift
# ;;
# --)
# shift; break
# ;;
# esac
# done
# if [ -z "$email" ]; then
# read -p "Email: " __git_email__
# local email=$__git_email__
# unset __git_email__
# fi
# signingkey=$( gpgsm --list-secret-keys | egrep '(key usage|ID)' | grep -v CertifyID |grep -B 1 digitalSignature | awk '/ID/ {print $2}' )
# git config --global user.name "$user"
# git config --global user.email "$email"
# git config --global init.defaultBranch "$default_branch"
# if [ -n "$ssh_command" ]; then
# git config --global core.sshCommand "$ssh_command"
# elif [ -n "$ssh_key" ]; then
# git config --global core.sshCommand "ssh -i \"$ssh_key\""
# fi
#}
#git-init-smime() {
# USAGE="git-init-smime [-cgh] CERT_ID"
# args=$( getopt "cCgh" $* )
# if [ $? -ne 0 ]; then
# echo $USAGE
# return 2
# fi
# set -- $args
#
# local sign_commits=""
# local global=""
#
# while :; do
# case "$1" in
# -C)
# local sign_commits=NO
# shift
# ;;
# -c)
# local sign_commits=YES
# shift
# ;;
# -g)
# local global="--global"
# shift
# ;;
# -h)
# cat << EOF
#git-init-smime HELP
#
#SYNOPSIS
# $USAGE
#
#OPTIONS
# -C Disable automatic signing of commits.
# [DEFAULT: no change]
# -c Enable automatic signing of commits.
# [DEFAULT: no change]
# -g Set global GIT options.
# -h Print this help message and exit.
#EOF
# shift; return
# ;;
# --)
# shift; break
# ;;
# esac
# done
#
# if [ -z "$1" ]; then
# echo "No CERT_ID given! Obtain the ID with \"gpgsm --list-secret-keys\"" >&2
# echo "$USAGE"
# return 2
# fi
#
# git config $global user.signingkey "$1"
# git config $global gpg.format x509
# if [ "$sign_commits" = "YES" ]; then
# git config $global commit.gpgsign true
# elif [ "$sign_commits" = "NO" ]; then
# git config $global commit.gpgsign false
# fi
#}
git-init-gpg() {
echo TODO
}
git-commit-timestamp() {
winver=$(which winver 2>/dev/null)
if [ -n "$WINVER" ]; then
local hostname="$(hostname)"
else
local hostname="$(hostname)"
fi
local msg="$(date "+%Y.%m.%d %H:%M:%S") ($hostname)"
git commit -m "$msg"
}
git-push-all() {
local branch="$(git branch --show-current)"
for __remote in $(git remote show); do
git push "$__remote" "$branch"
done
unset __remote
}
git-tags-push() {
for remote in $(git remote show); do
git push --tags "$remote"
done
}
git-mktag() {
if [ $# -lt 1 ]; then
echo "No tags given!" >&2
echo "SYNOPSIS:"
echo " git-mkttag <TAG_NAME> ..."
fi
while [ $# -gt 0 ]; do
git tag "$1"
shift
done
git-tags-push
}
# ALIASES
alias gitdc='git-commit-timestamp'
alias gpa='git-push-all'
alias gittp='git-tags-push'
alias gitmt='git-mktag'
alias gitcb='git branch --show-current'