74 lines
1.9 KiB
Plaintext
74 lines
1.9 KiB
Plaintext
# Tools
|
|
alias g="git"
|
|
|
|
y() {
|
|
local unignore="$XDG_CONFIG_HOME/yadm/unignore"
|
|
test -r "$unignore" && cat "$unignore" | while read f; do eval ls -d $f; done | yadm add --intent-to-add --pathspec-from-file=-
|
|
test "$#" -eq 0 && yadm s || yadm "$@"
|
|
}
|
|
yc() {
|
|
local folder="$(test -e "${1:-$PWD}" && realpath "${1:-$PWD}" || echo "$XDG_CONFIG_HOME/$1")"
|
|
echo "${folder#$HOME\/.}:" >/tmp/yc-msg
|
|
yadm commit -v --template /tmp/yc-msg ${@:2} -- "$folder*"
|
|
}
|
|
|
|
gcn() {
|
|
local root="$(git rev-parse --show-toplevel)"
|
|
if test "$root" = "$DATA"
|
|
then
|
|
if test $# -eq 0 || test -e "$1"
|
|
then
|
|
fulldir="$(realpath ${1:-$PWD})"
|
|
dir="${fulldir#$root/?-}"
|
|
else
|
|
dir="box/$1"
|
|
fulldir="$root/2-$dir"
|
|
fi
|
|
else
|
|
fulldir="$(realpath ${1:-$PWD})"
|
|
dir="${fulldir#$root/}"
|
|
fi
|
|
echo "$dir: " >/tmp/gcn-msg
|
|
git add $fulldir
|
|
git moves -q
|
|
git commit -v --template /tmp/gcn-msg ${@:2} #-- $fulldir
|
|
}
|
|
|
|
# if in home or under XDG_CONFIG_HOME and not within a git directory, replace git by yadm
|
|
git() {
|
|
case "$1" in
|
|
(reset) test "$2" = "--hard" && return 66;;
|
|
(config) ;;
|
|
(clone) ;;
|
|
(*) case "$PWD" in
|
|
($HOME|$XDG_CONFIG_HOME|$LAST_YADM)
|
|
yadm "$@"
|
|
return $?
|
|
;;
|
|
($XDG_CONFIG_HOME*|$HOME/.local*)
|
|
if ! command git rev-parse --show-toplevel &>/dev/null; then
|
|
export LAST_YADM="$PWD"
|
|
yadm "$@"
|
|
return $?
|
|
fi;;
|
|
esac;;
|
|
esac
|
|
command git "$@"
|
|
}
|
|
|
|
# BRANCHES
|
|
# Remove list of tags local & remote
|
|
gitrmtag() {
|
|
declare -a refs
|
|
local index=1
|
|
for tag in $@; do refs[index++]=":refs/tags/$tag"; done
|
|
git push origin "${refs[@]}" && git tag -d "$@"
|
|
}
|
|
# Rename a tag
|
|
gitretag() {
|
|
git push origin refs/tags/${1}:refs/tags/${2} :refs/tags/$1 && git tag -d $1
|
|
}
|
|
|
|
# Testing
|
|
gittestcommit() { touch file$((++i)) && git add 'file*' && git commit -m "Create file$i"; }
|