diff options
| author | Syndamia <kamen@syndamia.com> | 2024-11-30 09:56:08 +0200 |
|---|---|---|
| committer | Syndamia <kamen@syndamia.com> | 2024-11-30 09:56:08 +0200 |
| commit | 5575dd100d11b4519f74f4b193be04e8646bf218 (patch) | |
| tree | ef31006f8a1ef33d6f32671b6c992aae4f7024d6 /.bashrc | |
| parent | 469ed15f492c39b391b6e6dde020be70c80819e1 (diff) | |
| download | dotfiles-5575dd100d11b4519f74f4b193be04e8646bf218.tar dotfiles-5575dd100d11b4519f74f4b193be04e8646bf218.tar.gz dotfiles-5575dd100d11b4519f74f4b193be04e8646bf218.zip | |
feat(bash): Proper implementation for cdl, cdg, cds
Diffstat (limited to '.bashrc')
| -rw-r--r-- | .bashrc | 38 |
1 files changed, 30 insertions, 8 deletions
@@ -233,6 +233,36 @@ alias cd="pushd" # change directory alias bd="popd" # back directory alias fd="repushd" + + cdrepo() { + cd "$HOME/Programming/$1/$2" + } + # Huge thanks to: https://stackoverflow.com/a/39729507 + _cdrepo_comp() { + case "$1" in + (cdl) _folder='GitLab-repos' ;; + (cdg) _folder='GitHub-repos' ;; + (cds) _folder='source' ;; + esac + + while IFS= read line + do + line="${line##"$HOME"/Programming/"$_folder"/}/" + line="${line// /\\ }" + COMPREPLY+=("$line") + done <<EOF +$(compgen -d "$HOME"/Programming/"$_folder"/"$2") +EOF + } + + alias cdl="cdrepo GitLab-repos " + complete -o nospace -F _cdrepo_comp cdl + + alias cdg="cdrepo GitHub-repos " + complete -o nospace -F _cdrepo_comp cdg + + alias cds="cdrepo source " + complete -o nospace -F _cdrepo_comp cds # }}} # Processes {{{ @@ -436,14 +466,6 @@ then alias combinepdf="gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=temp.pdf" fi -cdrepo () { - [ -n "$2" ] && cd "$HOME/Programming/$1/$2" \ - || cd "$HOME/Programming/$1" -} -alias cdg="cdrepo GitHub-repos" -alias cdl="cdrepo GitLab-repos" -alias cds="cdrepo source" - alias wudo="sudo -u www-data" alias q="exit" |
