Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: problem with named directories over the net



On Mon, Jan 14, 2002 at 06:11:32PM +0000, Bart Schaefer wrote:
> On Jan 14,  5:40pm, Dominik Vogt wrote:
> } Subject: Re: problem with named directories over the net
> }
> } Works like a charm - with a few minor modifications.  First, you
> } can put that in the chpwd function to have the code executed only
> } when the working directory changes.
> 
> I had been about to suggest that myself, but if you ever happen to
> 'setopt chaselinks' you could end up with an infinite loop on your
> hands, so I didn't.

In fact I got that loop at some point when writing the function
and switched to precmd so that I don't have to think about it.

>  Also, if it's in chpwd it won't get executed
> the first time a new shell starts up, which might make a difference
> in a few rare cases.
>
> Of course you can insert a call to chpwd at the end of your .zshrc,

That's how I've been doing it for ages to set the xterm title.

> and if
> you use the zsh/parameter module you could prevent the infinite loop with:

Nope, I'm still using the zsh that came with SuSE 7.1 at work (3.1.9).

> 
>     chpwd ()
>     {
> 	[[ $funcstack == chpwd*chpwd* ]] && return
> 	# ... etc. ...
>     }
> 
> } Second, the slash before the
> } asterisk in the case value prevents that it works on the top
> } directory itself since PWD does not have the trailing slash for
> } directories.  I now use this script:
> } 
> }   chpwd ()
> }   {
> }     case "$PWD" in
> }       /net/server/share/home*)
> }         cd '/net/server/share' ''
> }         ;;
> }       /net/server/share/common*)
> }         cd '/net/server/share' ''
> }         ;;
> }       *)
> }         ;;
> }     esac
> }   }
> 
> Is it really the case that only `home' and `common' are automounted?
> Anyway, having an empty *) fallthrough is redundant.  Why not just:
> 
>     chpwd ()
>     {
> 	[[ $PWD == /net/server/share/* ]] && cd /net/server/share ''
>     }
> 
> (plus possible loop protection per above)?

I can't use this approach because there are some directories on
the share that are not remapped to /.  Some are mapped to named
directories that not necessarily have the same name (obviously, I
can't give the tmp directory on the share the name 'tmp').

Bye

Dominik ^_^  ^_^

-- 
Dominik Vogt, email: d.vogt@xxxxxxxxxxx
LifeBits Aktiengesellschaft, Albrechtstr. 9, D-72072 Tuebingen
fon: ++49 (0) 7071/7965-0, fax: ++49 (0) 7071/7965-20



Messages sorted by: Reverse Date, Date, Thread, Author