summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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"