mirror of
				https://github.com/linuxkit/linuxkit.git
				synced 2025-11-04 04:50:17 +00:00 
			
		
		
		
	Trying to find the relevant yaml file was an issue as we now support `--name` and it might be in a different directory, so although it is a bit verbose outputing a whole file at least it is more consistent. Signed-off-by: Justin Cormack <justin.cormack@docker.com>
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
 | 
						|
set -e
 | 
						|
 | 
						|
cd /tmp
 | 
						|
 | 
						|
# extract. BSD tar auto recognises compression, unlike GNU tar
 | 
						|
# only if stdin is a tty, if so need files volume mounted...
 | 
						|
[ -t 0 ] || bsdtar xzf -
 | 
						|
 | 
						|
TGZ="$(find . -name '*.tgz' -or -name '*.tar.gz')"
 | 
						|
[ -n "$TGZ" ] && bsdtar xzf "$TGZ"
 | 
						|
 | 
						|
ISO="$(find . -name '*.iso')"
 | 
						|
RAW="$(find . -name '*.raw')"
 | 
						|
INITRD="$(find . -name '*.img')"
 | 
						|
KERNEL="$(find . -name vmlinuz64 -or -name '*bzImage')"
 | 
						|
CMDLINE="$(find . -name '*-cmdline')"
 | 
						|
 | 
						|
if [ -n "$ISO" ]
 | 
						|
then
 | 
						|
	ARGS="-cdrom $ISO -drive file=systemdisk.img,format=raw"
 | 
						|
elif [ -n "$RAW" ]
 | 
						|
then
 | 
						|
	# should test with more drives
 | 
						|
	ARGS="-drive file=$RAW,format=raw"
 | 
						|
elif [ -n "KERNEL" ]
 | 
						|
then
 | 
						|
	ARGS="-kernel $KERNEL"
 | 
						|
	if [ -n "$INITRD" ]
 | 
						|
	then
 | 
						|
		ARGS="$ARGS -initrd $INITRD"
 | 
						|
	fi
 | 
						|
	ARGS="$ARGS -drive file=systemdisk.img,format=raw"
 | 
						|
else
 | 
						|
	echo "no recognised boot media" >2
 | 
						|
	exit 1
 | 
						|
fi
 | 
						|
 | 
						|
echo "$ARGS" | grep -q systemdisk && qemu-img create -f raw systemdisk.img 256M
 | 
						|
 | 
						|
if [ -n "${CMDLINE}" ]
 | 
						|
then
 | 
						|
	CMDLINE="$(cat $CMDLINE)"
 | 
						|
else
 | 
						|
	CMDLINE="$*"
 | 
						|
fi
 | 
						|
if [ -z "${CMDLINE}" ]
 | 
						|
then
 | 
						|
	CMDLINE="console=ttyS0"
 | 
						|
fi
 | 
						|
 | 
						|
qemu-system-x86_64 -machine q35,accel=kvm:tcg -device virtio-rng-pci -serial stdio -vnc none -m 1024 -append "${CMDLINE}" $ARGS
 |