Merge pull request #9318 from mistydemeo/add_with_env_to_docs
Formula cookbook: document with_env
This commit is contained in:
commit
ce8559a1bd
@ -488,6 +488,7 @@ module Kernel
|
||||
# @note This method is *not* thread-safe - other threads
|
||||
# which happen to be scheduled during the block will also
|
||||
# see these environment variables.
|
||||
# @api public
|
||||
def with_env(hash)
|
||||
old_values = {}
|
||||
begin
|
||||
|
||||
@ -757,7 +757,7 @@ Firstly, the overall environment in which Homebrew runs is filtered to avoid env
|
||||
|
||||
The second level of filtering removes sensitive environment variables (such as credentials like keys, passwords or tokens) to avoid malicious subprocesses obtaining them (<https://github.com/Homebrew/brew/pull/2524>). This has the effect of preventing any such variables from reaching a formula's Ruby code as they are filtered before it is called. The specific implementation can be seen in the [`ENV.clear_sensitive_environment!` method](https://github.com/Homebrew/brew/blob/HEAD/Library/Homebrew/extend/ENV.rb).
|
||||
|
||||
You can set environment variables in a formula's `install` method using `ENV["VARIABLE_NAME"] = "VALUE"`. An example can be seen in [the `gh` formula](https://github.com/Homebrew/homebrew-core/blob/fd9ad29f8e3ca9476f838ebb13794ddb7dafba00/Formula/gh.rb#L22).
|
||||
You can set environment variables in a formula's `install` method using `ENV["VARIABLE_NAME"] = "VALUE"`. An example can be seen in [the `gh` formula](https://github.com/Homebrew/homebrew-core/blob/fd9ad29f8e3ca9476f838ebb13794ddb7dafba00/Formula/gh.rb#L22). Environment variables can also be set temporarily using the `with_env` method; any variables defined in the call to that method will be restored to their original values at the end of the block. An example can be seen in [the `csound` formula](https://github.com/Homebrew/homebrew-core/blob/c3feaff8cdb578331385676620c865796cfc3388/Formula/csound.rb#L155-L157).
|
||||
|
||||
In summary, environment variables used by a formula need to conform to these filtering rules in order to be available.
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user