#!/usr/bin/env python import os env = os.environ # upon import, we record the enviroment from copy import deepcopy old_env = deepcopy( env ) sep = " ; " def quote( s ): if (s[0]!='"' and s[-1]!='"') : return '"'+s+'"' return s def diff ( mode = "bash" ) : r = "" for k,v in os.environ.items() : if not k in old_env or v != old_env[ k ] : if mode == "bash" : r += "export "+k+"="+quote(v)+sep if mode == "tcsh" or mode == "csh" : r += "setenv "+k+" "+v+sep return r def remove_from_path( env_var_name, r ): if env_var_name not in env : return v = env [ env_var_name ].split(':') env[env_var_name]= ':'.join( p for p in v if p != r ) def insert_in_path ( env_var_name, r ): if env_var_name not in env : env[ env_var_name ] = r return v = env [ env_var_name ].split(':') if v[0] == '.' : # keep . at the front, insert r after v.insert( 1, r ) else : v.insert( 0, r ) # insert r at the front env[ env_var_name ] = ':'.join( v )