Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Rehash after installs
- X-seq: zsh-users 16209
- From: Micah Elliott <micah@xxxxxxxxxxx>
- To: zsh-users@xxxxxxx
- Subject: Rehash after installs
- Date: Fri, 12 Aug 2011 23:53:00 -0700
- List-help: <mailto:zsh-users-help@zsh.org>
- List-id: Zsh Users List <zsh-users.zsh.org>
- List-post: <mailto:zsh-users@zsh.org>
- Mailing-list: contact zsh-users-help@xxxxxxx; run by ezmlm
- Sender: mde@xxxxxxxxxxxxxxxx
I've found that most tools don't rehash after they install something.
aptitude is guilty (if you want to call it that), but other tools like
"gem" are more friendly (well, I believe RVM is the one providing this
wrapper.)
% whence -f gem
gem () {
local result
command gem "$@"
result="$?"
hash -r # Update so newly installed util is now active!
return $result
}
Cool idea!
I'm to the point where I mostly always remember now to rehash after I
install anything. But it's still nice to do this automatically when
possible. Rather than try to wrap all the system utils that install
things, I'd like a reasonably generic way to do it. I'm just checking
with the list here to see if this looks like a safe way to do such
checking, and make sure there's nothing glaringly wrong about it...
typeset -ga precmd_functions
rehash-last-install() { fc -l -1 |grep -q install && { print
rehash-ing; rehash } }
precmd_functions+=rehash-last-install
Basically, this just looks at the last command (via fc) to see if
there was an "install" somewhere in it, and runs itself after every
command. It's going to rehash more often than necessary (false
positives), but I can't think of why that would be a bad thing since
rehashing looks pretty cheap.
--
twitter:@Membean | email:Micah@xxxxxxxxxxx | http://Membean.com
Remember your words with Membean! Three free days of learning!
Messages sorted by:
Reverse Date,
Date,
Thread,
Author