Compare commits

..

3 commits

Author SHA1 Message Date
Alexander Roso
127e2e5aa2 cdup: improvements 2026-05-07 15:47:52 +02:00
Alexander Roso
b23ed68195 aliases: some git stuff 2026-05-07 15:46:12 +02:00
Alexander Roso
e9c05e4f5d aliases/apt: use nala if available 2026-05-07 15:45:29 +02:00
5 changed files with 82 additions and 19 deletions

View file

@ -8,13 +8,20 @@ grep -iq 'ID_LIKE=debian' /etc/os-release || \
grep -iq 'NAME=Debian' /etc/os-release || \ grep -iq 'NAME=Debian' /etc/os-release || \
return return
alias xq="apt-cache search"
alias xi="sudo apt-get install"
alias xowner="dpkg -S" alias xowner="dpkg -S"
alias xfiles="dpkg -L" alias xfiles="dpkg -L"
alias sv="systemctl" alias sv="systemctl"
xupdate() { if (( $+commands[nala] )); then
alias xq="nala search"
alias xi="sudo nala install"
alias xupdate="sudo nala upgrade"
else
alias xq="apt-cache search"
alias xi="sudo apt-get install"
xupdate() {
sudo -v sudo -v
echo "\e[1;32mUpdating package cache...\e[0m" echo "\e[1;32mUpdating package cache...\e[0m"
if sudo apt update 2>&1 | grep -q 'apt list --upgradable'; then if sudo apt update 2>&1 | grep -q 'apt list --upgradable'; then
@ -23,4 +30,5 @@ xupdate() {
echo "\e[1;92mRun upgrades?\e[0m" echo "\e[1;92mRun upgrades?\e[0m"
read -q && sudo apt upgrade -y read -q && sudo apt upgrade -y
fi fi
} }
fi

View file

@ -392,3 +392,10 @@ if exists gron; then
gron | grep "$@" | gron -u gron | grep "$@" | gron -u
} }
fi fi
autostash() {
git stash
git "$@"
git stash pop
}
compdef _git autostash

View file

@ -33,8 +33,8 @@ defvcsfun gcm "commit" "commit" "commit"
defvcsfun ga "add" "add" "add" defvcsfun ga "add" "add" "add"
defvcsfun gpu "push" "push" "i_am_not_distributed_please_dont_push_me" defvcsfun gpu "push" "push" "i_am_not_distributed_please_dont_push_me"
alias gs="git switch"
alias gco="git checkout" alias gco="git checkout"
alias gca="git commit -a"
alias gap="git add --patch" alias gap="git add --patch"

View file

@ -1,20 +1,64 @@
PROJECT_ROOT_INDICATORS=(.git .hg package.json build.sbt)
# These commands find the topmost (i.e. shortest full path) project directory in
# the hierarchy of the given directory.
# cdup: changes to the match
# _cdup: prints the match
# _cdup_r: sets ~r as named dir for the match (set up as a chpwd hook)
#
# args: (cdup|_cdup) [-c] DIR [PROJECT_ROOT_INDICATOR...]
# -c / --closest return the nearest project directory, i.e. least steps up,
# possibly including the current directory
#
# DIR is starting point for the search
# A PROJECT_ROOT_INDICATOR are files to look for to detect project roots. If
# not given, a default list is used. $PROJECT_ROOT_INDICATORS can be used to
# override the default globally
_cdup() { _cdup() {
zparseopts -D -E c=closest -closest=closest
local dir=$1; shift local dir=$1; shift
local targets=("$@") local targets=("$@")
local match nextmatch
for target in $targets; do for target in $targets; do
if [[ -e $dir/$target ]]; then if [[ -e $dir/$target ]]; then
cd $dir if [[ $closest ]]; then
return 0 echo $dir
return
else
match=$dir
break
fi
fi fi
done done
if [[ $dir == "/" ]]; then return 1 if [[ $dir != "/" ]]; then
else _cdup ${dir:h} ${targets[@]} nextmatch=$(_cdup ${dir:h} ${targets[@]})
match=${nextmatch:-$match}
fi
if [[ $match ]]; then echo $match; return 0;
else return 1
fi fi
} }
cdup() { cdup() {
if [[ ${#@} -gt 0 ]]; then _cdup ${PWD:h} "$@" zparseopts -D -E c=closest -closest=closest
else _cdup ${PWD:h} .git .hg package.json build.sbt local target=$(_cdup $closest ${PWD:h} ${@:-$PROJECT_ROOT_INDICATORS})
if [[ $? != 0 ]]; then return 1;
else cd $target
fi fi
} }
_cdup_r () {
_cdup_project_root=$(_cdup ${PWD} ${PROJECT_ROOT_INDICATORS})
hash -d r=$_cdup_project_root
}
_prompt_cdup() {
[[ -n $_cdup_project_root ]] && echo "project: ${_cdup_project_root:h:t}/${_cdup_project_root:t}"
}
autoload -U add-zsh-hook
add-zsh-hook chpwd _cdup_r
_cdup_r

4
zshrc
View file

@ -128,6 +128,10 @@ if exists mail; then
__chromaz_extra_left+=_prompt_cron_mails __chromaz_extra_left+=_prompt_cron_mails
fi fi
if exists _prompt_cdup; then
__chromaz_extra_left+=_prompt_cdup
fi
tabs -4 tabs -4
#zprof #zprof