brew.sh: cache HOMEBREW_VERSION on disk.
This is a (relatively, for this Bash script) expensive operation that
can be trivially cached so: let's do so.
Speedup on my machine:
```
$ hyperfine "brew --version" "HOMEBREW_VERSION_CACHE=1 brew --version"
Benchmark 1: brew --version
  Time (mean ± σ):     173.4 ms ±   5.1 ms    [User: 28.7 ms, System: 67.0 ms]
  Range (min … max):   167.3 ms … 182.9 ms    15 runs
Benchmark 2: HOMEBREW_VERSION_CACHE=1 brew --version
  Time (mean ± σ):     145.9 ms ±   4.0 ms    [User: 22.4 ms, System: 33.9 ms]
  Range (min … max):   140.0 ms … 154.5 ms    17 runs
Summary
  HOMEBREW_VERSION_CACHE=1 brew --version ran
    1.19 ± 0.05 times faster than brew --version
```
Co-authored-by: Bo Anderson <mail@boanderson.me>
			
			
This commit is contained in:
		
							parent
							
								
									8378cc825d
								
							
						
					
					
						commit
						2b363b904c
					
				@ -495,7 +495,27 @@ setup_git() {
 | 
				
			|||||||
setup_curl
 | 
					setup_curl
 | 
				
			||||||
setup_git
 | 
					setup_git
 | 
				
			||||||
 | 
					
 | 
				
			||||||
HOMEBREW_VERSION="$("${HOMEBREW_GIT}" -C "${HOMEBREW_REPOSITORY}" describe --tags --dirty --abbrev=7 2>/dev/null)"
 | 
					GIT_DESCRIBE_CACHE="${HOMEBREW_REPOSITORY}/.git/describe-cache"
 | 
				
			||||||
 | 
					GIT_REVISION=$("${HOMEBREW_GIT}" -C "${HOMEBREW_REPOSITORY}" rev-parse HEAD 2>/dev/null)
 | 
				
			||||||
 | 
					if [[ -n "${GIT_REVISION}" ]]
 | 
				
			||||||
 | 
					then
 | 
				
			||||||
 | 
					  GIT_DESCRIBE_CACHE_FILE="${GIT_DESCRIBE_CACHE}/${GIT_REVISION}"
 | 
				
			||||||
 | 
					  if [[ -f "${GIT_DESCRIBE_CACHE_FILE}" ]]
 | 
				
			||||||
 | 
					  then
 | 
				
			||||||
 | 
					    HOMEBREW_VERSION="$(cat "${GIT_DESCRIBE_CACHE_FILE}")"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    rm -rf "${GIT_DESCRIBE_CACHE}"
 | 
				
			||||||
 | 
					    HOMEBREW_VERSION="$("${HOMEBREW_GIT}" -C "${HOMEBREW_REPOSITORY}" describe --tags --dirty --abbrev=7 2>/dev/null)"
 | 
				
			||||||
 | 
					    mkdir -p "${GIT_DESCRIBE_CACHE}"
 | 
				
			||||||
 | 
					    echo "${HOMEBREW_VERSION}" >"${GIT_DESCRIBE_CACHE_FILE}"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  unset GIT_DESCRIBE_CACHE_FILE
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					  rm -rf "${GIT_DESCRIBE_CACHE}"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					unset GIT_REVISION
 | 
				
			||||||
 | 
					unset GIT_DESCRIBE_CACHE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
HOMEBREW_USER_AGENT_VERSION="${HOMEBREW_VERSION}"
 | 
					HOMEBREW_USER_AGENT_VERSION="${HOMEBREW_VERSION}"
 | 
				
			||||||
if [[ -z "${HOMEBREW_VERSION}" ]]
 | 
					if [[ -z "${HOMEBREW_VERSION}" ]]
 | 
				
			||||||
then
 | 
					then
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user