Documentation ¶
Index ¶
- Variables
- func ConfigurationDefault(cfg *Configuration)
- func ConfigurationEnvOverrides(cfg *Configuration)
- func DefaultEnvFiles() []string
- func DefaultEnvironmentFiles() []string
- func PrefixEnvFile() string
- func SystemEnvFile() string
- func SystemEnvTakesPriority() bool
- func UserEnvFile() string
- type APIConfig
- type AutoUpdateConfig
- type Configuration
- type DockerRegistryConfig
- type Environment
Constants ¶
This section is empty.
Variables ¶
var ( // ConfigurationMatchFiles is a list of patterns used to match a config file for schema validation. ConfigurationMatchFiles = apiutil.ConfigDocumentedPath(configurationFileName) // ConfigurationFile is the default config file location. ConfigurationFile = apiutil.DefaultConfigPath(configurationFileName) // UnevaluatedConfigurationSearchFiles are used for display. UnevaluatedSearchFiles = []string{ PrefixEnvFile(), filepath.Join("$XDG_CONFIG_HOME", configurationFileName), filepath.Join(xdg.Home, ".homebrew"), SystemEnvFile(), } )
var ( //revive:disable:exported DefaultAPIDomain = "https://formulae.brew.sh/api" DefaultArch = "native" DefaultAPIAutoUpdateSecs = 450 DefaultAutoUpdateSecs = 86400 DefaultBottleDomain = "https://ghcr.io/v2/homebrew/core" DefaultBrewGitRemote = "https://github.com/Homebrew/brew" DefaultCache = filepath.Join(xdg.CacheHome, "Homebrew") DefaultCleanupMaxAgeDays = 120 DefaultCleanupPeriodicFullDays = 30 DefaultCoreGitRemote = "https://github.com/Homebrew/homebrew-core" DefaultCurlPath = "curl" DefaultCurlRetries = 3 DefaultFailLogLines = 15 DefaultGitPath = "git" DefaultInstallBadge = "🍺" DefaultLivecheckWatchlist = defaultLivecheckWatchlist() DefaultLogs = defaultLogs() DefaultMakeJobs = runtime.NumCPU() DefaultPIPIndexURL = "https://pypi.org/simple" DefaultSSHConfigPath = filepath.Join(xdg.Home, ".ssh", "config") DefaultSVN = "svn" DefaultTemp = defaultTemp() )
Functions ¶
func ConfigurationDefault ¶ added in v0.2.0
func ConfigurationDefault(cfg *Configuration)
ConfigurationDefault defaults the object's fields.
func ConfigurationEnvOverrides ¶ added in v0.2.0
func ConfigurationEnvOverrides(cfg *Configuration)
ConfigurationEnvOverrides overrides the configuration with environment variables.
func DefaultEnvFiles ¶ added in v0.2.0
func DefaultEnvFiles() []string
DefaultEnvironmentFiles returns the default env files in increasing priority order.
func DefaultEnvironmentFiles ¶
func DefaultEnvironmentFiles() []string
DefaultEnvironmentFiles returns the default files to load the environment config from.
func PrefixEnvFile ¶ added in v0.2.0
func PrefixEnvFile() string
PrefixEnvFile produces the prefix env file location.
func SystemEnvFile ¶ added in v0.2.0
func SystemEnvFile() string
SystemEnvFile produces the system env file location.
func SystemEnvTakesPriority ¶ added in v0.2.0
func SystemEnvTakesPriority() bool
SystemEnvTakesPriority reports whether the HOMEBREW_SYSTEM_ENV_TAKES_PRIORITY variable is set. The setting indicates that the system env file should take priority over the prefix and user env files.
func UserEnvFile ¶ added in v0.2.0
func UserEnvFile() string
UserEnvFile produces the system env file location.
Types ¶
type APIConfig ¶ added in v0.2.0
type APIConfig struct { // Domain to use for the Homebrew API. Overrides Homebrew's HOMEBREW_API_DOMAIN value. // // Default: https://formulae.brew.sh/api Domain string `json:"domain,omitempty" yaml:"domain,omitempty" env:"DOMAIN"` // Configure auto-update behavior AutoUpdate AutoUpdateConfig `json:"autoUpdate,omitempty" yaml:"autoUpdate,omitempty" envPrefix:"AUTO_UPDATE_"` }
APIConfig configures Hops' usage of the Homebrew API.
type AutoUpdateConfig ¶ added in v0.2.0
type AutoUpdateConfig struct { Disabled bool `json:"disabled,omitempty" yaml:"disabled,omitempty" env:"DISABLED"` Secs *int `json:"secs,omitempty" yaml:"secs,omitempty" env:"SECS"` }
AutoUpdateConfig configures auto-updates for a formula index.
func (*AutoUpdateConfig) ShouldAutoUpdate ¶ added in v0.2.0
func (au *AutoUpdateConfig) ShouldAutoUpdate(file string) bool
ShouldAutoUpdate returns true if an auto update should be run.
type Configuration ¶ added in v0.2.0
type Configuration struct { // Use this directory as the download cache. // // Defaults: // - macOS: `$XDG_CACHE_HOME/Homebrew` or `$HOME/Library/Caches/Homebrew` // - Linux: `$XDG_CACHE_HOME/Homebrew` or `$HOME/.cache/Homebrew`. Cache string `json:"cache,omitempty" yaml:"cache,omitempty" env:"CACHE"` // Prefix all download URLs, including those for bottles, with this value. For example, `HOMEBREW_ARTIFACT_DOMAIN=http://localhost:8080` will cause a formula with the URL `https://example.com/foo.tar.gz` to instead download from `http://localhost:8080/https://example.com/foo.tar.gz`. Bottle URLs however, have their domain replaced with this prefix. This results in e.g. `https://ghcr.io/v2/homebrew/core/gettext/manifests/0.21` to instead be downloaded from `http://localhost:8080/v2/homebrew/core/gettext/manifests/0.21` ArtifactDomain string `json:"artifactDomain,omitempty" yaml:"artifactDomain,omitempty" env:"ARTIFACT_DOMAIN"` // Configures Hops' usage of the Homebrew API. API APIConfig `json:"api,omitempty" yaml:"api,omitempty" envPrefix:"API_"` // Use this URL as the download mirror for bottles. If bottles at that URL are temporarily unavailable, the default bottle domain will be used as a fallback mirror. For example, setting BottleDomain to `HOMEBREW_BOTTLE_DOMAIN=http://localhost:8080` will cause all bottles to download from the prefix `http://localhost:8080/`. // // Default: `https://ghcr.io/v2/homebrew/core`. BottleDomain string `json:"bottleDomain,omitempty" yaml:"bottleDomain,omitempty" env:"BOTTLE_DOMAIN"` // Docker registry configuration DockerRegistry DockerRegistryConfig `json:"dockerRegistry,omitempty" yaml:"dockerRegistry,omitempty" envPrefix:"DOCKER_REGISTRY_"` }
Configuration represents Homebrew's environment configuration. Note that environment variables must have a value set to be detected. For example, run "export HOMEBREW_NO_INSECURE_REDIRECT=1" rather than just "export HOMEBREW_NO_INSECURE_REDIRECT".
`HOMEBREW_*` environment variables can also be set in Homebrew’s environment files:
- /etc/homebrew/brew.env (system-wide)
- $HOMEBREW_PREFIX/etc/homebrew/brew.env` (prefix-specific)
- $XDG_CONFIG_HOME/homebrew/brew.env if $XDG_CONFIG_HOME is set or $HOME/.homebrew/brew.env otherwise (user-specific)
User-specific environment files take precedence over prefix-specific files and prefix-specific files take precedence over system-wide files (unless `HOMEBREW_SYSTEM_ENV_TAKES_PRIORITY` is set, see below).
Note that these files do not support shell variable expansion e.g. `$HOME` or command execution e.g. `$(cat file)`.
func (*Configuration) GitHubPackagesAuth ¶ added in v0.2.0
func (e *Configuration) GitHubPackagesAuth() string
GitHubPackagesAuth derives the GitHub Packages auth from the env config.
From: https://github.com/Homebrew/brew/blob/master/Library/Homebrew/brew.sh
func (*Configuration) GitHubPackagesHeaders ¶ added in v0.2.0
func (e *Configuration) GitHubPackagesHeaders() http.Header
GitHubPackagesHeaders derives the GitHub Packages auth from the env config.
type DockerRegistryConfig ¶ added in v0.2.0
type DockerRegistryConfig struct { // Use this base64 encoded username and password for authenticating with a Docker registry proxying GitHub Packages. If Token is set, it will be used instead. BasicAuthToken string `json:"basicAuthToken,omitempty" yaml:"basicAuthToken,omitempty" env:"BASIC_AUTH_TOKEN"` // Use this bearer token for authenticating with a Docker registry proxying GitHub Packages. Preferred over BasicAuthToken. Token string `json:"token,omitempty" yaml:"token,omitempty" env:"TOKEN"` }
DockerRegistryConfig configures docker registry usage.
type Environment ¶
type Environment struct { // HOMEBREW_PREFIX Prefix string `json:"HOMEBREW_PREFIX" env:"HOMEBREW_PREFIX"` // HOMEBREW_API_DOMAIN // Use this URL as the download mirror for Homebrew JSON API. If metadata files at that URL are temporarily unavailable, the default API domain will be used as a fallback mirror. // // Default: `https://formulae.brew.sh/api`. APIDomain string `json:"HOMEBREW_API_DOMAIN" env:"HOMEBREW_API_DOMAIN"` // HOMEBREW_ARTIFACT_DOMAIN // Prefix all download URLs, including those for bottles, with this value. For example, `HOMEBREW_ARTIFACT_DOMAIN=http://localhost:8080` will cause a formula with the URL `https://example.com/foo.tar.gz` to instead download from `http://localhost:8080/https://example.com/foo.tar.gz`. Bottle URLs however, have their domain replaced with this prefix. This results in e.g. `https://ghcr.io/v2/homebrew/core/gettext/manifests/0.21` to instead be downloaded from `http://localhost:8080/v2/homebrew/core/gettext/manifests/0.21` ArtifactDomain string `json:"HOMEBREW_ARTIFACT_DOMAIN" env:"HOMEBREW_ARTIFACT_DOMAIN"` // HOMEBREW_API_AUTO_UPDATE_SECS // Check Homebrew’s API for new formulae or cask data every `HOMEBREW_API_AUTO_UPDATE_SECS` seconds. Alternatively, disable API auto-update checks entirely with `HOMEBREW_NO_AUTO_UPDATE`. // // Default: `450`. APIAutoUpdateSecs int `json:"HOMEBREW_API_AUTO_UPDATE_SECS" env:"HOMEBREW_API_AUTO_UPDATE_SECS"` // HOMEBREW_AUTO_UPDATE_SECS // Run `brew update` once every `HOMEBREW_AUTO_UPDATE_SECS` seconds before some commands, e.g. `brew install`, `brew upgrade` and `brew tap`. Alternatively, disable auto-update entirely with `HOMEBREW_NO_AUTO_UPDATE`. // // Default: `86400` (24 hours), `3600` (1 hour) if a developer command has been run or `300` (5 minutes) if `HOMEBREW_NO_INSTALL_FROM_API` is set. AutoUpdateSecs int `json:"HOMEBREW_AUTO_UPDATE_SECS" env:"HOMEBREW_AUTO_UPDATE_SECS"` // HOMEBREW_BOTTLE_DOMAIN // Use this URL as the download mirror for bottles. If bottles at that URL are temporarily unavailable, the default bottle domain will be used as a fallback mirror. For example, `HOMEBREW_BOTTLE_DOMAIN=http://localhost:8080` will cause all bottles to download from the prefix `http://localhost:8080/`. If bottles are not available at `HOMEBREW_BOTTLE_DOMAIN` they will be downloaded from the default bottle domain. // // Default: `https://ghcr.io/v2/homebrew/core`. BottleDomain string `json:"HOMEBREW_BOTTLE_DOMAIN" env:"HOMEBREW_BOTTLE_DOMAIN"` // HOMEBREW_CACHE // Use this directory as the download cache. // // Defaults: // - macOS: `$XDG_CACHE_HOME/Homebrew` or `$HOME/Library/Caches/Homebrew` // - Linux: `$XDG_CACHE_HOME/Homebrew` or `$HOME/.cache/Homebrew`. Cache string `json:"HOMEBREW_CACHE" env:"HOMEBREW_CACHE"` // HOMEBREW_CLEANUP_MAX_AGE_DAYS // Cleanup all cached files older than this many days. // // Default: `120`. CleanupMaxAgeDays int `json:"HOMEBREW_CLEANUP_MAX_AGE_DAYS" env:"HOMEBREW_CLEANUP_MAX_AGE_DAYS"` // HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS // If set, `brew install`, `brew upgrade` and `brew reinstall` will cleanup all formulae when this number of days has passed. // // Default: `30`. CleanupPeriodicFullDays int `json:"HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS" env:"HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS"` // HOMEBREW_DEBUG // If set, always assume `--debug` when running commands. Debug bool `json:"HOMEBREW_DEBUG" env:"HOMEBREW_DEBUG"` // HOMEBREW_DEVELOPER // If set, tweak behaviour to be more relevant for Homebrew developers (active or budding) by e.g. turning warnings into errors. Developer bool `json:"HOMEBREW_DEVELOPER" env:"HOMEBREW_DEVELOPER"` // HOMEBREW_DOCKER_REGISTRY_BASIC_AUTH_TOKEN // Use this base64 encoded username and password for authenticating with a Docker registry proxying GitHub Packages. If `HOMEBREW_DOCKER_REGISTRY_TOKEN` is set, it will be used instead. DockerRegistryBasicAuthToken string `json:"HOMEBREW_DOCKER_REGISTRY_BASIC_AUTH_TOKEN" env:"HOMEBREW_DOCKER_REGISTRY_BASIC_AUTH_TOKEN"` // HOMEBREW_DOCKER_REGISTRY_TOKEN // Use this bearer token for authenticating with a Docker registry proxying GitHub Packages. Preferred over `HOMEBREW_DOCKER_REGISTRY_BASIC_AUTH_TOKEN`. DockerRegistryToken string `json:"HOMEBREW_DOCKER_REGISTRY_TOKEN" env:"HOMEBREW_DOCKER_REGISTRY_TOKEN"` // HOMEBREW_INSTALL_BADGE // Print this text before the installation summary of each successful build. // // Default: The “Beer Mug” emoji. InstallBadge string `json:"HOMEBREW_INSTALL_BADGE" env:"HOMEBREW_INSTALL_BADGE"` // HOMEBREW_NO_EMOJI // If set, do not print `HOMEBREW_INSTALL_BADGE` on a successful build. NoEmoji bool `json:"HOMEBREW_NO_EMOJI" env:"HOMEBREW_NO_EMOJI"` // HOMEBREW_NO_INSTALL_UPGRADE // If set, `brew install` **`formula|cask`** will not upgrade **`formula|cask`** if it is installed but outdated. NoInstallUpgrade bool `json:"HOMEBREW_NO_INSTALL_UPGRADE" env:"HOMEBREW_NO_INSTALL_UPGRADE"` // HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK // If set, do not check for broken linkage of dependents or outdated dependents after installing, upgrading or reinstalling formulae. This will result in fewer dependents (and their dependencies) being upgraded or reinstalled but may result in more breakage from running `brew install` **`formula`** or `brew upgrade` **`formula`**. NoInstalledDependentsCheck bool `json:"HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK" env:"HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK"` // HOMEBREW_NO_UPDATE_REPORT_NEW // If set, `brew update` will not show the list of newly added formulae/casks. NoUpdateReportNew bool `json:"HOMEBREW_NO_UPDATE_REPORT_NEW" env:"HOMEBREW_NO_UPDATE_REPORT_NEW"` // HOMEBREW_VERBOSE // If set, always assume `--verbose` when running commands. Verbose bool `json:"HOMEBREW_VERBOSE" env:"HOMEBREW_VERBOSE"` }
Environment represents Homebrew's environment configuration. Note that environment variables must have a value set to be detected. For example, run "export HOMEBREW_NO_INSECURE_REDIRECT=1" rather than just "export HOMEBREW_NO_INSECURE_REDIRECT".
`HOMEBREW_*` environment variables can also be set in Homebrew’s environment files:
- /etc/homebrew/brew.env (system-wide)
- $HOMEBREW_PREFIX/etc/homebrew/brew.env` (prefix-specific)
- $XDG_CONFIG_HOME/homebrew/brew.env if $XDG_CONFIG_HOME is set or $HOME/.homebrew/brew.env otherwise (user-specific)
User-specific environment files take precedence over prefix-specific files and prefix-specific files take precedence over system-wide files (unless `HOMEBREW_SYSTEM_ENV_TAKES_PRIORITY` is set, see below).
Note that these files do not support shell variable expansion e.g. `$HOME` or command execution e.g. `$(cat file)`.
func Load ¶
func Load() (*Environment, error)
Load loads the environment config from the OS environment.
func (*Environment) AddGitHubPackagesAuthHeader ¶
func (e *Environment) AddGitHubPackagesAuthHeader(req http.Request)
AddGitHubPackagesAuthHeader adds the GitHub Packages auth header to the request.
func (*Environment) GitHubPackagesAuth ¶
func (e *Environment) GitHubPackagesAuth() string
GitHubPackagesAuth derives the GitHub Packages auth from the env config.
From: https://github.com/Homebrew/brew/blob/master/Library/Homebrew/brew.sh
func (*Environment) String ¶
func (e *Environment) String() string