32 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			32 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| 
								 | 
							
								#!/usr/bin/env bash
							 | 
						||
| 
								 | 
							
								set -u -e -o pipefail
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Clones the `angular/components` repository if the repository has not been cloned before.
							 | 
						||
| 
								 | 
							
								# If the repository has been already cloned, the script refreshes the repository by syncing
							 | 
						||
| 
								 | 
							
								# with the upstream remote, and resetting to the commit specified in the `COMPONENTS_REPO_COMMIT`
							 | 
						||
| 
								 | 
							
								# environment variable.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if [[ ! -d "${COMPONENTS_REPO_TMP_DIR}" ]]; then
							 | 
						||
| 
								 | 
							
								  # Clone the repository if not present through restored cache.
							 | 
						||
| 
								 | 
							
								  git clone --branch ${COMPONENTS_REPO_BRANCH} ${COMPONENTS_REPO_URL} ${COMPONENTS_REPO_TMP_DIR}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  # Switch into the cloned repository.
							 | 
						||
| 
								 | 
							
								  cd ${COMPONENTS_REPO_TMP_DIR}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  # Reset branch to the desired commit.
							 | 
						||
| 
								 | 
							
								  git reset --hard ${COMPONENTS_REPO_COMMIT}
							 | 
						||
| 
								 | 
							
								else
							 | 
						||
| 
								 | 
							
								  # Switch into the cached repository.
							 | 
						||
| 
								 | 
							
								  cd ${COMPONENTS_REPO_TMP_DIR}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  # Only refresh the repository if the current branch HEAD is not
							 | 
						||
| 
								 | 
							
								  # matching the desired commit.
							 | 
						||
| 
								 | 
							
								  if [[ "$(git rev-parse HEAD)" != "${COMPONENTS_REPO_COMMIT}" ]]; then
							 | 
						||
| 
								 | 
							
								    # Pull the latest changes of the specified branch.
							 | 
						||
| 
								 | 
							
								    git fetch origin ${COMPONENTS_REPO_BRANCH}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Reset the current branch to the desired commit.
							 | 
						||
| 
								 | 
							
								    git reset --hard ${COMPONENTS_REPO_COMMIT}
							 | 
						||
| 
								 | 
							
								  fi
							 | 
						||
| 
								 | 
							
								fi
							 |