EnvironmentHelper

This module contains functions which allow to read and write environment variables and build parameters

Nested types and modules

TypeDescription
EnvironTarget

Type alias for System.EnvironmentVariableTarget

MachineDetails

A record which allows to display lots of machine specific information like machine name, processor count etc.

Functions and values

Function or valueDescription
( @@ ) path1 path2
Signature: path1:string -> path2:string -> string

Combines two path strings using Path.Combine after removing leading slashes from the second path

( </> ) path1 path2
Signature: path1:string -> path2:string -> string

Combines two path strings using Path.Combine

appSetting name
Signature: name:string -> string

Retrieves the application settings variable with the given name

clearProcessEnvironVar name
Signature: name:string -> unit

Clears the environment variable with the given name for the current process.

combinePaths path1 path2
Signature: path1:string -> path2:string -> string

Combines two path strings using Path.Combine after removing leading slashes from the second path

combinePathsNoTrim path1 path2
Signature: path1:string -> path2:string -> string

Combines two path strings using Path.Combine

convertWindowsToCurrentPath windowsPath
Signature: windowsPath:string -> string

Convert the given windows path to a path in the current system

directorySeparator
Signature: string

The directory separator string. On most systems / or \

documentsFolder
Signature: string

The path to the personal documents

encoding
Signature: Encoding

Contains the IO encoding which is given via build parameter "encoding" or the default encoding if no encoding was specified.

environVar name
Signature: name:string -> string

Retrieves the environment variable with the given name

environVarOrDefault name defaultValue
Signature: name:string -> defaultValue:string -> string

Retrieves the environment variable with the given name or returns the default if no value was set

environVarOrFail name
Signature: name:string -> string

Retrieves the environment variable with the given name or fails if not found

environVarOrNone name
Signature: name:string -> string option

Retrieves the environment variable or None if no value was set

environVars target
Signature: target:EnvironmentVariableTarget -> (obj * obj) list

Retrieves all environment variables from the given target

getBuildParam name
Signature: name:string -> string

Returns the value of the build parameter with the given name if it was set and otherwise an empty string

getBuildParamOrDefault name defaultParam
Signature: name:string -> defaultParam:string -> string

Returns the value of the build parameter with the given name if it was set and otherwise the given default value

getDrivesInfo ()
Signature: unit -> seq<string>

Retrieves information about the hard drives

getEnvironmentVarAsBool varName
Signature: varName:string -> bool

Retrieves the environment variable with the given name or returns false if no value was set

getEnvironmentVarAsBoolOrDefault (...)
Signature: varName:string -> defaultValue:bool -> bool

Retrieves the environment variable with the given name or returns the default value if no value was set

getInstalledDotNetFrameworks ()
Signature: unit -> seq<string>

Returns a sequence with all installed .NET framework versions

getMachineEnvironment ()
Signature: unit -> MachineDetails

Retrieves lots of machine specific information like machine name, processor count etc.

getNewestTool possibleToolPaths
Signature: possibleToolPaths:seq<'a> -> 'a
Type parameters: 'a

Helper function to help find framework or sdk tools from the newest toolkit available

getTargetPlatformDir platformVersion
Signature: platformVersion:string -> string

Gets the local directory for the given target platform

hasBuildParam name
Signature: name:string -> bool

Returns if the build parameter with the given name was set

isLinux
Signature: bool

Determines if the current system is a Linux system

isMacOS
Signature: bool

Determines if the current system is a MacOs system

isMono
Signature: bool

Determines if the current system is a mono system Todo: Detect mono on windows

isUnix
Signature: bool

Determines if the current system is an Unix system

isWindows
Signature: bool

Determines if the current system is a Windows system

monoArguments
Signature: string

Arguments on the Mono executable

monoPath
Signature: string
monoVersion
Signature: (string * Version option) option

required sometimes to workaround mono crashes http://stackoverflow.com/a/8414517/1269722

msSdkBasePath
Signature: string

Base path for getting tools from Microsoft SDKs

normalizePath path
Signature: path:string -> string
platformInfoAction psi
Signature: psi:ProcessStartInfo -> unit

Modifies the ProcessStartInfo according to the platform semantics

ProgramFiles
Signature: string

The path of the "Program Files" folder - might be x64 on x64 machine

ProgramFilesX86
Signature: string

The path of Program Files (x86) It seems this covers all cases where PROCESSOR_ARCHITECTURE may misreport and the case where the other variable PROCESSOR_ARCHITEW6432 can be null

sdkBasePath
Signature: string

Base path for getting tools from Windows SDKs

setBuildParam name value
Signature: name:string -> value:string -> unit

Sets the build parameter with the given name for the current process.

setEnvironVar name value
Signature: name:string -> value:string -> unit

Sets the environment variable with the given name

setMachineEnvironVar name value
Signature: name:string -> value:string -> unit

Sets the environment variable with the given name for the current machine.

setProcessEnvironVar name value
Signature: name:string -> value:string -> unit

Sets the environment variable with the given name for the current process.

setUserEnvironVar name value
Signature: name:string -> value:string -> unit

Sets the environment variable with the given name for the current user.

splitEnvironVar name
Signature: name:string -> string list

Splits the entries of an environment variable and removes the empty ones.

SystemRoot
Signature: string

The system root environment variable. Typically "C:\Windows"

TargetPlatformPrefix
Signature: string

The path of the current target platform