Note: This API documentation is for FAKE version 4. The migration API documentation can be found here. The API documentation for the new fake 5 modules can be found here

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