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." |