NAME
Envy - A comprehensive multi-dimensional environment manager
SYNOPSIS
Unfortunately, installation takes a bit more work beyond simply typing 'make'. Big returns can involve negotiating big obstacles.
TRIAL
To try envy, you need to determine the type of your login shell. In the Unix world, there are mainly two types of shells. You can find out which one you have with:
echo $SHELL
The following covers installation for most shells:
SH, KSH, BASH, ZSH, Etc.
envy() { eval `envy.pl $*`; }
CSH, TCSH, Etc.
alias envy 'envy.pl -csh \!* > /tmp/t$$; source /tmp/t$$; /bin/rm -f /tmp/t$$'
Now type 'envy help' and take a look around the menus.
Full installation is not exactly straightforward because to achieve the greatest benefit, you'll need to let envy manage your system-wide login scripts.
FULL INSTALLATION
WHY AM I GOING THROUGH ALL THIS HELL?
Because envy could solve some of your long standing, tenacious problems!
REUSE
Envy allows the centralization of configuration files. When new versions of software come out, it is easy to globally publish new configuration files for a gradual, controlled migration. Instead of being locked into backward compatibility, you can gently nudge users towards change.
CHOICE
Each user can customize their environment exactly to the degree they prefer instead of being forced into a global environment or splintering into an entirely custom (home directory based :-) setup.
DEPENDENCIES
Envy makes dependencies between packages explicit and visible.
STARTING APPLICATIONS
The 'launche' script makes it easy to isolate application from their configuration and log usage.
CRON JOBS
Cron jobs will no longer fail unexpectedly due to missing or mistaken environment variables. The 'launche' script mimics the precise execution environment for crontab so test runs are a breeze.
CONFIGURATION
Before you 'make install', be sure to customize ./Conf.pm.
$prefix
This will default to the same place where perl is installed.
%env0
These variables are hardcoded into various scripts. You should keep the minimum environment necessary to run envy.
@path
On startup, envy will search these paths to find the $startup envy.
$startup
You'll need to write a startup .env file to set up the initial login environment. At a minimum, you'll need to set ENVY_PATH. You may also like to require a few other envies by default.
SCRIPTS
To determine how to modify your global startup scripts (profile, login) see the examples in etc/login. You should be able to cut & paste to get things going. The minimum you'll need is the following in profile:
eval `/full/path/to/envy.pl load $startup`
or in login:
$ENVY -csh load $startup > /tmp/mod.$$
source /tmp/mod.$$
if ($?debug) cat /tmp/mod.$$
/bin/rm /tmp/mod.$$
where $startup is replaced with the appropriate envy for your site. You'll also need the envy function/alias as mentioned in the TRIAL section (above).
FUTURE DIRECTION
Envy is written entirely in perl and is designed to be used as a library as well as a command-line tool. One possible project is a graphical front end to help navigate the environment. Also see the TODO file.
SUPPORT
Send email to envy@listbox.com.
SEE ALSO
For a comparison of unix shells:
http://www.faqs.org/faqs/unix-faq/shell/shell-differences/index.html
And for why you should *not* do shell programming in csh:
http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/