Skip to content

Commit

Permalink
examples: add ignition-kargs binary example
Browse files Browse the repository at this point in the history
  • Loading branch information
Stephen Lowrie committed Apr 28, 2021
1 parent 4e06be9 commit 383893d
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions examples/ignition-kargs-helper
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#!/bin/bash

# Requires sed & awk to be present

set -euxo pipefail

# Mount /boot. Note that we mount /boot but we don't unmount it because we
# are run in a systemd unit with MountFlags=slave so it is unmounted for us.
bootmnt=/mnt/boot_partition
mkdir -p ${bootmnt}
bootdev=/dev/disk/by-label/boot
mount -o rw ${bootdev} ${bootmnt}
grubcfg="${bootmnt}/grub/grub.cfg"

kernelopts="$(grep kernelopts= <$grubcfg | sed \"s,kernelopts=,,g\")"

while [[ $# -gt 0 ]]
do
key="$1"

case $key in
--should-exist)
arg="$2"
# don't repeat the arg
if [[ ! " ${kernelopts[*]} " =~ " ${arg} " ]]; then
kernelopts="$kernelopts $arg "
fi
shift 2
;;
--should-not-exist)
kernelopts="$(echo "$kernelopts" | sed "s|$2||g")"
shift 2
;;
*)
echo "Unknown option"
exit 1
;;
esac
done

# only apply the changes & reboot if changes have been made
if [[ "$kernelopts" != "$(grep kernelopts= <$grubcfg)" ]]; then
awk "{sub(/kernelopts=.*/,\"kernelopts=$kernelopts\"); print}" $grubcfg > /run/kargs_tmp && mv /run/kargs_tmp $grubcfg

systemctl reboot
fi

0 comments on commit 383893d

Please sign in to comment.