diff options
Diffstat (limited to '.zsh/zshrc/90_profiles')
-rw-r--r-- | .zsh/zshrc/90_profiles | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/.zsh/zshrc/90_profiles b/.zsh/zshrc/90_profiles deleted file mode 100644 index 18ecf00..0000000 --- a/.zsh/zshrc/90_profiles +++ /dev/null @@ -1,124 +0,0 @@ -# zshrc/90_profiles -# -# set up directory specific variables and options -# -# http://michael-prokop.at/blog/2009/05/30/directory-specific-shell-configuration-with-zsh -# -# chpwd_profiles taken from grml zshrc -# -# Copyright © 2010-2017 Tobias Klauser <tklauser@distanz.ch> -# Released under the terms of the Artistic Licence 2.0 -# -# Source repository: git://git.distanz.ch/dotfiles/zsh.git - -CHPWD_PROFILE='default' - -zstyle ':chpwd:profiles:/home/tklauser/go(|/|/*)' profile distanz -zstyle ':chpwd:profiles:/home/tobiask/go(|/|/*)' profile distanz -zstyle ':chpwd:profiles:/home/tklauser/src(|/|/*)' profile distanz -zstyle ':chpwd:profiles:/home/tobiask/src(|/|/*)' profile distanz -zstyle ':chpwd:profiles:/scratch/tobiask/go(|/|/*)' profile distanz -zstyle ':chpwd:profiles:/home/tobiask/zi(|/|/*)' profile zhinst -zstyle ':chpwd:profiles:/scratch/tobiask/zi(|/|/*)' profile zhinst -zstyle ':chpwd:profiles:/scratch/yocto-zi(|/|/*)' profile zhinst - -chpwd_profile_distanz() -{ - [[ ${profile} == ${CHPWD_PROFILE} ]] && return 1 - print "chpwd(): Switching to profile: $profile" - - export GIT_AUTHOR_EMAIL="tklauser@distanz.ch" - export GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL" -} - -chpwd_profile_zhinst() -{ - [[ ${profile} == ${CHPWD_PROFILE} ]] && return 1 - print "chpwd(): Switching to profile: $profile" - - export GIT_AUTHOR_EMAIL="tobias.klauser@zhinst.com" - export GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL" -} - -function chpwd_profiles() { - # Say you want certain settings to be active in certain directories. - # This is what you want. - # - # zstyle ':chpwd:profiles:/usr/src/grml(|/|/*)' profile grml - # zstyle ':chpwd:profiles:/usr/src/debian(|/|/*)' profile debian - # - # When that's done and you enter a directory that matches the pattern - # in the third part of the context, a function called chpwd_profile_grml, - # for example, is called (if it exists). - # - # If no pattern matches (read: no profile is detected) the profile is - # set to 'default', which means chpwd_profile_default is attempted to - # be called. - # - # A word about the context (the ':chpwd:profiles:*' stuff in the zstyle - # command) which is used: The third part in the context is matched against - # ${PWD}. That's why using a pattern such as /foo/bar(|/|/*) makes sense. - # Because that way the profile is detected for all these values of ${PWD}: - # /foo/bar - # /foo/bar/ - # /foo/bar/baz - # So, if you want to make double damn sure a profile works in /foo/bar - # and everywhere deeper in that tree, just use (|/|/*) and be happy. - # - # The name of the detected profile will be available in a variable called - # 'profile' in your functions. You don't need to do anything, it'll just - # be there. - # - # Then there is the parameter $CHPWD_PROFILE is set to the profile, that - # was is currently active. That way you can avoid running code for a - # profile that is already active, by running code such as the following - # at the start of your function: - # - # function chpwd_profile_grml() { - # [[ ${profile} == ${CHPWD_PROFILE} ]] && return 1 - # ... - # } - # - # The initial value for $CHPWD_PROFILE is 'default'. - # - # Version requirement: - # This feature requires zsh 4.3.3 or newer. - # If you use this feature and need to know whether it is active in your - # current shell, there are several ways to do that. Here are two simple - # ways: - # - # a) If knowing if the profiles feature is active when zsh starts is - # good enough for you, you can put the following snippet into your - # .zshrc.local: - # - # (( ${+functions[chpwd_profiles]} )) && print "directory profiles active" - # - # b) If that is not good enough, and you would prefer to be notified - # whenever a profile changes, you can solve that by making sure you - # start *every* profile function you create like this: - # - # function chpwd_profile_myprofilename() { - # [[ ${profile} == ${CHPWD_PROFILE} ]] && return 1 - # print "chpwd(): Switching to profile: $profile" - # ... - # } - # - # That makes sure you only get notified if a profile is *changed*, - # not everytime you change directory, which would probably piss - # you off fairly quickly. :-) - # - # There you go. Now have fun with that. - local -x profile - - zstyle -s ":chpwd:profiles:${PWD}" profile profile || profile='default' - if (( ${+functions[chpwd_profile_$profile]} )) ; then - chpwd_profile_${profile} - fi - - CHPWD_PROFILE="${profile}" - return 0 -} -chpwd_functions=( ${chpwd_functions} chpwd_profiles ) - - -# vim:ft=zsh |