GithubHelp home page GithubHelp logo

atdt / envv Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jakewendt/envv

0.0 2.0 0.0 121 KB

Envv is a shell-independent way of handling environment variables. (not mine)

Makefile 1.42% C 98.58%

envv's Introduction

ENVV

Envv is a shell-independent way of handling environment variables.
It lets you set environment variables, and manipulate colon-separated
paths in an easy, shell-independent way.  This makes writing setup scripts
for softare products a snap.  Instead of users hard-coding initialization
steps in their .cshrc or .profile files, they can source system-wide
files.  Then, if you ever move any software packages, users don't
have any problem.

For example, suppose the commercial software packaged FOOBAR requires
'/usr/local/foobar/bin' to be on the user's path, and requires the
environment variable 'FOOHOME' to be set to '/usr/local/foobar'

Just create the following script:

	eval `envv add PATH /usr/local/foobar/bin`
	eval `envv set FOOHOME /usr/local/foobar`

Then, users of csh, tcsh, bash, sh or ksh can simply source the script,
and everything will work fine.

BUILDING ENVV

Envv is a ridiculously simple program.  You may want to glance at the
first few lines of envv.c, and take a look at the Makefile.  But all you
should have to to do compile it is type 'make'.  This makes the executable
'envv', which you can copy to your favourite system directory.  The manual
page is in 'envv.1'

CHANGES TO ENVV:

* Version 1.7 (14 July 2011)

+ Licence change

  ENVV is now licensed under the MIT license
  (http://en.wikipedia.org/wiki/MIT_License)

  The official license terms are in the man page, envv.1

+ Bug fixes

- Fixed segmentation fault identified at
  jakewendt#1

* Version 1.6 (11 July 1995)

+ Bug fixes

- Fixed the path comparison function.  The old version would
  incorrectly match /u/share and /usr/foo because the trailing-slash
  logic was confused.  Thanks to Caleb Epstein for finding and reporting
  the bug.

* Version 1.5

+ Bug fixes

- Made directives case-insensitive (suggested by Steve Shoopak.)

- Changed the definition of MAX_VAL_LEN from 256 to 2048 to allow for
  very long paths.

* Version 1.4 (10 May 1994)

+ Bug fixes

- If a set command was followed by add/move/del commands on stdin,
  it didn't work -- the results of the set were not saved in envv's
  environment.

* Version 1.3 (10 May 1994)

+ Bug fixes

- I was freeing a string after sending it to putenv().  Bad news.
  This patch fixes that.

* Version 1.2 (18 April 1994)

+ Enhancements

- Added the "local" directive to set variables without exporting them
  to the environment.

- Added the '-e', -h' and '-s' options.

- If no directives are supplied on command line, envv reads directives
  from stdin and issues commands based on those directives.  Directives
  on stdin should be supplied one-per-line.

+ Bug fixes

- Fixed up the usage display to show the "choose" directive, which had
  been missing.

* Version 1.1 (22 March 1994)

+ Enhancements

- Modified the path manipulation commands so that trailing slashes do
  not affect comparison of directories.  That is, foo/bar/ and foo/bar
  are considered the same.

- Added the 'zsh' shell to the list of shells envv recognizes.

- Added the 'choose' directive -- see the man page.

* Version 1.0 (8 Feb 1994)

- First version.

--
David F. Skoll
Roaring Penguin Software Inc.
<[email protected]>
613 231-6599

envv's People

Contributors

jakewendt avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.