60 lines
1.3 KiB
Bash
60 lines
1.3 KiB
Bash
#!/bin/bash
|
|
|
|
. maas-images.inc
|
|
. syslinux-menu.inc
|
|
|
|
function download_version()
|
|
{
|
|
local release_version="$1"
|
|
local drive="$2"
|
|
local target
|
|
|
|
find_unused "$drive"
|
|
target="$unused"
|
|
if [ -z "$unused" ]; then
|
|
find_oldest "$drive"
|
|
target="$unused"
|
|
fi
|
|
if [ -z "$target" ]; then
|
|
exit 1
|
|
fi
|
|
|
|
downloads="$(mktemp -d)"
|
|
pushd "$downloads"
|
|
|
|
download_and_verify "$release_version" boot-kernel
|
|
if [ $? -eq 1 ]; then
|
|
popd
|
|
rm -rf "$downloads"
|
|
exit 1
|
|
fi
|
|
download_and_verify "$release_version" boot-initrd
|
|
if [ $? -eq 1 ]; then
|
|
popd
|
|
rm -rf "$downloads"
|
|
exit 1
|
|
fi
|
|
download_and_verify "$release_version" squashfs
|
|
if [ $? -eq 1 ]; then
|
|
popd
|
|
rm -rf "$downloads"
|
|
exit 1
|
|
fi
|
|
|
|
mount_efi "$drive"
|
|
mkdir -p "$mnt""$imagepath"
|
|
mv boot-initrd "$mnt""$imagepath"/boot-initrd."$release_version"
|
|
mv boot-kernel "$mnt""$imagepath"/boot-kernel."$release_version"
|
|
umount_efi
|
|
|
|
dev_from_partnum "$drive" "$target"
|
|
dd if=squashfs of="$partition" bs=1M
|
|
rename_partition "$drive" "$target" root_"$release_version"
|
|
rm -f squashfs
|
|
popd
|
|
rmdir "$downloads"
|
|
update_syslinux_menu "$drive"
|
|
}
|
|
|
|
# vim: set ft=sh:
|