mirror of
				https://gitlab.alpinelinux.org/alpine/aports.git
				synced 2025-10-31 08:21:49 +01:00 
			
		
		
		
	The /etc/os-release was moved to alpine-release in commit 23e66e85c95b (main/alpine-base: split release data into its own package)
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh -e
 | |
| 
 | |
| cleanup() {
 | |
| 	rm -rf "$tmp"
 | |
| }
 | |
| 
 | |
| tmp="$(mktemp -d)"
 | |
| trap cleanup EXIT
 | |
| chmod 0755 "$tmp"
 | |
| 
 | |
| arch="$(apk --print-arch)"
 | |
| repositories_file=/etc/apk/repositories
 | |
| keys_dir=/etc/apk/keys
 | |
| 
 | |
| while getopts "a:r:k:o:" opt; do
 | |
| 	case $opt in
 | |
| 	a) arch="$OPTARG";;
 | |
| 	r) repositories_file="$OPTARG";;
 | |
| 	k) keys_dir="$OPTARG";;
 | |
| 	o) outfile="$OPTARG";;
 | |
| 	esac
 | |
| done
 | |
| shift $(( $OPTIND - 1))
 | |
| 
 | |
| cat "$repositories_file"
 | |
| 
 | |
| if [ -z "$outfile" ]; then
 | |
| 	outfile=$name-$arch.tar.gz
 | |
| fi
 | |
| 
 | |
| ${APK:-apk} add --keys-dir "$keys_dir" --no-cache \
 | |
| 	--repositories-file "$repositories_file" \
 | |
| 	--no-script --root "$tmp" --initdb --arch "$arch" \
 | |
| 	"$@"
 | |
| for link in $("$tmp"/bin/busybox --list-full); do
 | |
| 	[ -e "$tmp"/$link ] || ln -s /bin/busybox "$tmp"/$link
 | |
| done
 | |
| 
 | |
| ${APK:-apk} fetch --keys-dir "$keys_dir" --no-cache \
 | |
| 	--repositories-file "$repositories_file" --root "$tmp" \
 | |
| 	--stdout --quiet alpine-release | tar -zx -C "$tmp" etc/
 | |
| 
 | |
| # make sure root login is disabled
 | |
| sed -i -e 's/^root::/root:*:/' "$tmp"/etc/shadow
 | |
| 
 | |
| branch=edge
 | |
| VERSION_ID=$(awk -F= '$1=="VERSION_ID" {print $2}'  "$tmp"/etc/os-release)
 | |
| case $VERSION_ID in
 | |
| *_alpha*|*_beta*) branch=edge;;
 | |
| *.*.*) branch=v${VERSION_ID%.*};;
 | |
| esac
 | |
| 
 | |
| cat > "$tmp"/etc/apk/repositories <<EOF
 | |
| https://dl-cdn.alpinelinux.org/alpine/$branch/main
 | |
| https://dl-cdn.alpinelinux.org/alpine/$branch/community
 | |
| EOF
 | |
| 
 | |
| tar --numeric-owner --exclude='dev/*' -c -C "$tmp" . | gzip -9n > "$outfile"
 |