#!/usr/bin/env sh ###################################################################### # @author : swytch # @file : dot # @license : GPLv3 # @created : Wednesday May 20, 2020 18:13:05 CEST # # @description : git wrapper for dotfiles management ###################################################################### flags="false" for arg in $@ do case $arg in --*) ;; -*) [ "$flags" = "true" ] && flags="error" && break || flags="true" ;; esac done [ "$flags" = "error" ] && echo "error: only one flag permitted" && exit 1 git="/usr/bin/git --git-dir=$DOTFILES --work-tree=$HOME" case $1 in -*) [ "$1" = "-l" ] && cmd="$git log" && break [ "$1" = "-lg" ] && cmd="$git log --graph --format=short" && break [ "$1" = "-c" ] && shift && cmd="$git commit $@" && break [ "$1" = "-ca" ] && cmd="$git commit -a" && break [ "$1" = "-cas" ] && shift && cmd="$git commit -S --amend $@" && break [ "$1" = "-ch" ] && shift && cmd="$git checkout $@" && break [ "$1" = "-mv" ] && shift && cmd="$git mv $@" && break [ "$1" = "-ps" ] && shift && cmd="$git push $@" && break [ "$1" = "-pl" ] && cmd="$git pull" && break [ "$1" = "-a" ] && shift && cmd="$git add $@" && break [ "$1" = "-b" ] && shift && cmd="$git branch $@" && break [ "$1" = "-s" ] && shift && cmd="$git show $@" && break [ "$1" = "-rm" ] && shift && cmd="$git rm --cached $@" && break [ "$1" = "-rb" ] && shift && cmd="$git rebase $@" && break [ "$1" = "-rbi" ] && shift && cmd="$git rebase -i $@" && break [ "$1" = "-rs" ] && shift && cmd="$git reset --soft $@" && break [ "$1" = "-d" ] && shift && cmd="$git diff $@" && break if [ "$1" = "-m" ] ; then shift [ "$1" = "" ] && echo "Please provide a branche to merge into" && exit 1 if [ "$1" != "-a" ] ; then while [ "$1" != "" ] ; do $git checkout $1 && $git merge dev shift done else branches="$(echo "$($git branch)" | sed -e 's/\*/ /;t')" for arg in $branches ; do [ "$arg" != "dev" ] && $git checkout $arg && $git merge dev done fi cmd="$git checkout dev" fi ;; *) [ "$1" != "" ] && cmd="$git $@" || cmd="$git status" ;; esac eval $cmd