=head1 NAME

Envy - A comprehensive multi-dimensional environment manager

=head1 SYNOPSIS

Installation takes a bit more work beyond simply typing 'make'.  Big
returns sometimes involve negotiating big risks.  Sorry!

=head1 FIRST TIME USERS

To install 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 cover installation for both types of shells:

=over 4

=head2 INSTALLING

=item * SH, KSH, BASH, ZSH, Etc.

   envy() { eval `envy.pl $*`; }
   unenvy() { eval `envy.pl -un $*`; }

=item * CSH, TCSH, Etc.

   alias envy 'envy.pl -csh \!* > /tmp/t$$; source /tmp/t$$; /bin/rm -f /tmp/t$$'
   alias unenvy 'envy.pl -un -csh \!* > /tmp/t$$; source /tmp/t$$; /bin/rm -f /tmp/t$$'

=back

Now type 'envy help'.  You should see a menu of help options.

Full installation is not exactly straightforward.  To integrate envy
into your facilities, consider the example profile.IN & login.IN.  I
hope to have better documentation in the future!

=head2 WHY AM I GOING THROUGH ALL THIS HELL?

Because envy could solve some of your tenacious, long standing
problems!

=over 4

=item * REUSE

Envy allows the centralization of configuration files.  When new
versions of software come out, it is easy to globally publish new
configuration files in preparation for a gradual and controlled
migration.  Instead of being locked into backward compatibility, you
can slowly nudge users into changing.

=item * CHOICE

Each user can customize their environment exactly to the degree they
want instead of being forced into a global environment or splintering
into an entirely custom (home directory based) environment.

=item * DEPENDENCIES

Envy makes dependencies between packages explicit and understandable.

=item * CRON JOBS

Envy makes it easy to correctly set up cron jobs.  Cron jobs will no
longer fail unexpectedly due to missing environment variables.

=back

=head2 CRONTAB

Use C<$ETOP/bin/wrapper> to initiate cron jobs.  C<wrapper> is a very
simple script that loads envies given on the command line and then
executes shell commands.

=head2 ENVY SETUP

Hopefully, you will find envy very easy to set up for your site.
Before you 'make install', be sure check ./Conf.pm.

=head1 EXTENSION API

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.

=head1 SUPPORT

Send email to envy@listbox.com.

=head1 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/

=cut
