38 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			38 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| 
								 | 
							
								#!/usr/bin/env bash
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								set -eu -o pipefail
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								readonly prNumber="$1"
							 | 
						||
| 
								 | 
							
								readonly prLastSha="${2:0:7}"
							 | 
						||
| 
								 | 
							
								readonly inputDir="$PROJECT_ROOT/$3"
							 | 
						||
| 
								 | 
							
								readonly outputDir="$PROJECT_ROOT/$4"
							 | 
						||
| 
								 | 
							
								readonly fileSuffix="-pr$prNumber-$prLastSha.tgz"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								echo "Creating compressed archives for packages in '$inputDir'."
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Create or clean-up the output directory.
							 | 
						||
| 
								 | 
							
								echo "  Preparing output directory: $outputDir"
							 | 
						||
| 
								 | 
							
								rm -rf "$outputDir"
							 | 
						||
| 
								 | 
							
								mkdir -p "$outputDir"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Create a compressed archive containing all packages.
							 | 
						||
| 
								 | 
							
								# (This is useful for copying all packages into `node_modules/` (without changing `package.json`).)
							 | 
						||
| 
								 | 
							
								outputFileName=all$fileSuffix
							 | 
						||
| 
								 | 
							
								echo "  Creating archive with all packages --> '$outputFileName'..."
							 | 
						||
| 
								 | 
							
								tar --create --gzip --directory "$inputDir" --file "$outputDir/$outputFileName" --transform s/^\./packages/ .
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Create a compressed archive for each package.
							 | 
						||
| 
								 | 
							
								# (This is useful for referencing the path/URL to the resulting archive in `package.json`.)
							 | 
						||
| 
								 | 
							
								for dir in $inputDir/*
							 | 
						||
| 
								 | 
							
								do
							 | 
						||
| 
								 | 
							
								  packageName=`basename "$dir"`
							 | 
						||
| 
								 | 
							
								  outputFileName="$packageName$fileSuffix"
							 | 
						||
| 
								 | 
							
								  outputFilePath="$outputDir/$outputFileName"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  echo "  Processing package '$packageName' --> '$outputFileName'..."
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  tar --create --gzip --directory "$dir" --file "$outputFilePath" --transform s/^\./package/ .
							 | 
						||
| 
								 | 
							
								done
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								echo "Done creating compressed archives."
							 |