mirror of
				https://github.com/moby/moby.git
				synced 2022-11-09 12:21:53 -05:00 
			
		
		
		
	This is especially important for distributions like NixOS where `/bin/bash` doesn't exist, or for MacOS users who've installed a newer version of Bash than the one that comes with their OS. Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
		
			
				
	
	
		
			43 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
set -e
 | 
						|
 | 
						|
# This script cleans the experimental pool for the apt repo.
 | 
						|
# This is useful when there are a lot of old experimental debs and you only want to keep the most recent.
 | 
						|
#
 | 
						|
 | 
						|
: ${DOCKER_RELEASE_DIR:=$DEST}
 | 
						|
APTDIR=$DOCKER_RELEASE_DIR/apt/repo/pool/experimental
 | 
						|
: ${DOCKER_ARCHIVE_DIR:=$DEST/archive}
 | 
						|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 | 
						|
 | 
						|
latest_versions=$(dpkg-scanpackages "$APTDIR" /dev/null 2>/dev/null | awk -F ': ' '$1 == "Filename" { print $2 }')
 | 
						|
 | 
						|
# get the latest version
 | 
						|
latest_docker_engine_file=$(echo "$latest_versions" | grep docker-engine)
 | 
						|
latest_docker_engine_version=$(basename ${latest_docker_engine_file%~*})
 | 
						|
 | 
						|
echo "latest docker-engine version: $latest_docker_engine_version"
 | 
						|
 | 
						|
# remove all the files that are not that version in experimental
 | 
						|
pool_dir=$(dirname "$latest_docker_engine_file")
 | 
						|
old_pkgs=( $(ls "$pool_dir" | grep -v "^${latest_docker_engine_version}" | grep "${latest_docker_engine_version%%~git*}") )
 | 
						|
 | 
						|
echo "${old_pkgs[@]}"
 | 
						|
 | 
						|
mkdir -p "$DOCKER_ARCHIVE_DIR"
 | 
						|
for old_pkg in "${old_pkgs[@]}"; do
 | 
						|
	echo "moving ${pool_dir}/${old_pkg} to $DOCKER_ARCHIVE_DIR"
 | 
						|
	mv "${pool_dir}/${old_pkg}" "$DOCKER_ARCHIVE_DIR"
 | 
						|
done
 | 
						|
 | 
						|
echo
 | 
						|
echo "$pool_dir now has contents:"
 | 
						|
ls "$pool_dir"
 | 
						|
 | 
						|
# now regenerate release files for experimental
 | 
						|
export COMPONENT=experimental
 | 
						|
source "${DIR}/update-apt-repo"
 | 
						|
 | 
						|
echo "You will now want to: "
 | 
						|
echo "   - re-sign the repo with hack/make/sign-repo"
 | 
						|
echo "   - re-generate index files with hack/make/generate-index-listing"
 |