:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : class Program.Environment.Public public Gilda : :............................................................................... ::::::::::::::::::::::: program/environment/Environment :::::::::::::::::::::: : sequence ENVIRONMENT pure: Scan all environment variables. exit Key..string :Pairs of each variable name and value : :............................................................................... : function GET.ENVIRONMENT: Get a variable from the environment. entry Name string :Environment variable name exit Value string :Current value; empty if undefined : :............................................................................... : method PUT.ENVIRONMENT: Add a variable to the environment. entry Name string, &Environment variable name Value string :A value to assign : : FAULT: Out of space for another ENVIRONMENT variable. :............................................................................... : method OPEN.PATH: Set up access to Path variable components. exit Miss Heap..string :Directories on the PATH that do not exist : :............................................................................... : sequence ENVIRONMENT.PATH pure: Get paths on the PATH environment variable. exit Path string :Each component on the PATH : : Call OPEN.PATH before using this sequence. : Otherwise is will not return any paths. :............................................................................... : method SET.PATH: Set or add a component to the PATH environment variable. entry Value string :Path list delimited by comma, semicolon, :or colon (Unix only). May have mixed slashes. exit Miss Heap..string :Missing paths. : :............................................................................... : method WHICH.PATH: Find the first executable file along the search path. entry File string :Dual path (tame, mixed case, forward slash) exit Path string, &OS path name; Ends in ~ if executable &Empty if missing &Windows paths will have backslashes Attribute :Attributes for the result : : Environment.Path needs to be established by calling Open.Path. :............................................................................... : method TEMPORARY.DIRECTORY: Determine the temporary directory. exit Path string :Directory (forward slashes) with a trailing slash. : :............................................................................... : method SET.HOME: Set the home directory separated by Path.Slash. change Home string : In: Desired new Home directory (Cross path). :Out: New home or unchanged if no path. : ( Tame Os path; lower or exact case; : Path.Slash; trailing slash ). precondition Home fault; Tried to clear the home path. Home.Path = "" fault Home; Tried to reset the home path. . : Need to set home.base when the host in home.share is the host??? : : Exit: Home.Path is always set. : Home.Drive is null or the drive letter of a drive-based home. : Home.Share is null or a share path when Home.Path is a drive path. :............................................................................... : method GET.HOME: Get the home directory separated by Path.Slash. exit Home string :Os path for home (tame; lower or exact case; : Path.Slash; trailing slash). : : Need to set home.base when the host in home.share is the host??? : : Exit: Home.Path is always set. : Home.Drive is null or the drive letter of a drive-based home. : Home.Share is null or a share path when Home.Path is a drive path. :............................................................................... : method GET.HOME.EXIST: Get the users home or a valid existing directory. exit Home string :Os path for home (tame; lower case; : Path.Slash; trailing slash). : :............................................................................... : method GET.HOME.PATH: Determine the home directory using the Home.Path : global or HOMEPATH and HOMESHARE environment variables. : :............................................................................... : method GET.HOME.DRIVE: Get the drive to use as a basis for the Home.Path. : :............................................................................... end