48 lines
889 B
Bash
48 lines
889 B
Bash
|
#!/bin/bash
|
||
|
|
||
|
set -eux
|
||
|
|
||
|
src="$(dirname "$(dirname "$(readlink -f "${0}")")")"
|
||
|
old_iso="$(readlink -f "${1}")"
|
||
|
new_iso="$(readlink -f "${2}")"
|
||
|
|
||
|
tmpdir="$(mktemp -d)"
|
||
|
cd "${tmpdir}"
|
||
|
|
||
|
_MOUNTS=()
|
||
|
|
||
|
do_mount_existing () {
|
||
|
local mountpoint="${!#}"
|
||
|
mount "$@"
|
||
|
_MOUNTS=("${mountpoint}" "${_MOUNTS[@]+"${_MOUNTS[@]}"}")
|
||
|
}
|
||
|
|
||
|
do_mount () {
|
||
|
local mountpoint="${!#}"
|
||
|
mkdir "${mountpoint}"
|
||
|
do_mount_existing "$@"
|
||
|
}
|
||
|
|
||
|
clean_mounts () {
|
||
|
for m in "${_MOUNTS[@]+"${_MOUNTS[@]}"}"; do
|
||
|
umount "${m}"
|
||
|
done
|
||
|
_MOUNTS=()
|
||
|
}
|
||
|
|
||
|
cleanup () {
|
||
|
clean_mounts
|
||
|
rm -rf "${tmpdir}"
|
||
|
}
|
||
|
|
||
|
trap cleanup EXIT
|
||
|
|
||
|
do_mount $old_iso old_iso
|
||
|
do_mount old_iso/casper/installer.squashfs installer
|
||
|
|
||
|
$src/scripts/slimy-update-snap.sh installer/var/lib/snapd/seed/snaps/subiquity_*.snap subiquity_new.snap
|
||
|
|
||
|
clean_mounts
|
||
|
|
||
|
$src/scripts/inject-subiquity-snap.sh $old_iso subiquity_new.snap $new_iso
|