summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSyndamia <kamen@syndamia.com>2024-11-30 09:56:08 +0200
committerSyndamia <kamen@syndamia.com>2024-11-30 09:56:08 +0200
commit5575dd100d11b4519f74f4b193be04e8646bf218 (patch)
treeef31006f8a1ef33d6f32671b6c992aae4f7024d6
parent469ed15f492c39b391b6e6dde020be70c80819e1 (diff)
downloaddotfiles-5575dd100d11b4519f74f4b193be04e8646bf218.tar
dotfiles-5575dd100d11b4519f74f4b193be04e8646bf218.tar.gz
dotfiles-5575dd100d11b4519f74f4b193be04e8646bf218.zip
feat(bash): Proper implementation for cdl, cdg, cds
-rw-r--r--.bashrc38
1 files changed, 30 insertions, 8 deletions
diff --git a/.bashrc b/.bashrc
index 9f749b3..bc1b2d2 100644
--- a/.bashrc
+++ b/.bashrc
@@ -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"