diff options
| author | Philip J Freeman <elektron@halo.nu> | 2025-05-31 12:34:14 -0700 |
|---|---|---|
| committer | Philip J Freeman <elektron@halo.nu> | 2025-05-31 15:47:31 -0700 |
| commit | 34105077c777b0d2c5c69f39921f376b84ce1443 (patch) | |
| tree | 606152d6f739a0ee7fd8e5127e79b595f3fe8c85 /hooks/build-os-post/40-ostree-demo-scripts | |
| parent | 5392080129b1093f36533e47c155f618c283ea57 (diff) | |
Deploying a demo amd64 debian-based OS via ostree
This is a prototype outline for building and deploying a debian based OS
with ostree. For purposes of demonstration, the OS runs from a bootable
USB device on a UEFI capable amd64 machine. Once a USB device is
created and booted, the OS can be updated using a simple shell script.
<https://ostreedev.github.io/ostree/>
<https://www.nin.wiki/Halo_numbers>
Diffstat (limited to 'hooks/build-os-post/40-ostree-demo-scripts')
| -rwxr-xr-x | hooks/build-os-post/40-ostree-demo-scripts | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/hooks/build-os-post/40-ostree-demo-scripts b/hooks/build-os-post/40-ostree-demo-scripts new file mode 100755 index 0000000..6ea5627 --- /dev/null +++ b/hooks/build-os-post/40-ostree-demo-scripts @@ -0,0 +1,36 @@ +#!/bin/bash -xe + +set -o pipefail + +cat > "${root:?}"/usr/sbin/halo-upgrade << EOF +#!/bin/bash -e + +set -o pipefail + +remote="${remote:?}" +branch="${branch:?}" + +remote_ref=\$(ostree remote refs -r "\$remote" | egrep ^"\$remote":"\$branch"'\\s' | awk '{print \$2}') +local_ref=\$(ostree refs -r | egrep ^"\$remote":"\$branch"'\\s' | awk '{print \$2}') + +if [ "\$local_ref" != "\$remote_ref" -a -n "\$remote_ref" ]; then + echo "OS Update available. Installing..." + + set -x + + ostree admin upgrade + + grub-mkconfig -o /boot/grub/grub.cfg + + set +x + + echo "OS Update Installed. Press Enter to Reboot..." + + read + + reboot +else + echo "No OS Update found." +fi +EOF +chmod 755 "${root:?}"/usr/sbin/halo-upgrade |
