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

Rehash after installs



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