Sick of an endlessly growing PATH?  Me too!

Envy does shell-independent environment variable management.


Envy is not ambitious.  It is designed to be a narrow tool and it
tries to solve specific and practical problems without going wildly
overboard.  Its modest scope includes:

1. Easy, safe upgrade from any other dot-file setup.  Works with sh,
ksh, bash, zsh, csh, and tcsh.

2. A mechanism is provided for setting and prepending environment
variables in a variety of flexible ways.  All modifications are
reversible.  I think reversibility is important.

3. Machine generated .profile, .login, and crontab wrapper with
centrally specified bootstrapping environment variables.  Most other
variable can be determined via modular configuration files.

Get it via http://www.perl.com/CPAN/authors/id/JPRIT/ !


##################
# RECENT CHAN@ES #
##################


** 1998-09-03 RELEASE 2.18

- Tweaked handling of 'First' dimension.


** 1998-09-01 RELEASE 2.17

- Append and assignment were ambiguous and assignment took precedence.
Append is now assumed.  Added tests.

- Envies found in .priv directories are hidden from the listing.

- Fixed 5.004-ish warnings.


** 1998-08-31 RELEASE 2.16

- A fairly large amount of work (mostly in the form of deep pondering)
has gone into this release.  Please consider it BETA and test
it carefully!

- Replaced bizarre installation instructions with much simpler.

- Improved start-up time.

- More documentation: envy help and FAQ.pod

- Changes to the ENVY_PATH are now reflected (immediately) when
loading multiple envys during a single invokation.

- Added support for *.site configuration files.  This allows per-site
customization of default settings (like xemacs).

- Switched default umask to 002.  Should be part of site
configuration?


----------------------------------------------------------------------

Here's what it looks like:

[joshua@grdevl137] ~% envy
   dailydb-dev                          imag-dbo-testdb
 x dev                                  imag-dev-2513
   dev-area-setup                       imag-dev-2519
   fame                                 imag-prod
   framemaker                           java
 x fvwm95-2.0.43a                       objstore
   gcc                                x openwin
   gems-1.9.1-dev                       printing
   gems-2.0-dev                         prod
   gems-2.0.alpha.14                    prod-new
   gems-dev                             research
   gems-intl-rpts                     x reuters
   gems-prod                            solaris
   imag-2519                            sunpro
   imag-batch-hilarydb                x sybase
   imag-batch-proddb                    tcltk
   imag-batch-testdb                    tcltk-7.6
   imag-dbo-hilarydb                    tcltk-8.0
   imag-dbo-proddb                   

The 'x' means 'loaded'.

[joshua@grdevl137] ~% envy list
All envys currently available (2.15):
 
 x SUNWspro-4.2         /nw/dist/prod/etc/envy/SUNWspro-4.2.env
   TLW                  /nw/dist/prod/etc/envy/TLW.env
   adp-batch-proddb     /nw/dist/prod/etc/envy/adp-batch-proddb.env
   bat-2.20             /nw/dist/prod/etc/envy/bat-2.20.env
   bookmark1            /home/joshua/.envy/bookmark1.env
 x cc-tools             /nw/dist/prod/etc/envy/cc-tools.env
   coppelia             /nw/dist/prod/etc/envy/coppelia.env
   dailydb              /nw/dist/prod/etc/envy/dailydb.env
   dailydb-dev          /nw/dist/prod/etc/envy/dailydb-dev.env
   dev                  /nw/dist/prod/etc/envy/dev.env
   edcrs-1.0            /nw/dist/prod/etc/envy/edcrs-1.0.env
   edcrs-prod           /nw/dist/prod/etc/envy/edcrs-prod.env
   ess-primal-etsdb     /nw/dist/prod/etc/envy/ess-primal-etsdb.env
   fame                 /nw/dist/prod/etc/envy/fame.env
   finance_tech         /nw/dist/prod/etc/envy/finance_tech.env
   fix                  /nw/dist/prod/etc/envy/fix.env
   fvwm95-2.0.43a       /nw/dist/prod/etc/envy/fvwm95-2.0.43a.env
   ...

[joshua@grdevl137] ~% cat /nw/dev/usr/etc/envy/openwin.env
# X11 and Motif
#
PATH+=/usr/dt/bin:/usr/openwin/bin
MANPATH+=/usr/dt/man:/usr/openwin/man
LD_LIBRARY_PATH+=/usr/dt/lib:/usr/openwin/lib
OPENWINHOME=/usr/openwin

This means that when 'openwin' is loaded, two components are prepended
to the PATH, MANPATH, and LD_LIBRARY_PATH; and OPENWINHOME is set to
/usr/openwin.  What makes envy unique is that YOU CAN ALSO UNLOAD
'openwin' to unprepend and unset each of the variables modified during
the load.

----------------------------------------------------------------------

Credits:
  Sergei Poliakoff - Global Technology Architect
  Alexander Shugayev - Creative Touche
  Devine Kerr - Developer
  Ken Nawyn - Senior System Administrator
  Joshua Pritikin - Magician

Support:
  joshua.pritikin@db.com

-------------------------------------------------------------------
Copyright © 1997-1998 Joshua Nathaniel Pritikin.  All rights reserved.

This package is free software and is provided "as is" without express
or implied warranty.  It may be used, redistributed and/or modified
under the terms of the Perl Artistic License (see
http://www.perl.com/perl/misc/Artistic.html)
