diff options
author | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2018-06-08 02:14:53 -0500 |
---|---|---|
committer | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2018-06-08 02:14:53 -0500 |
commit | abefa433c8e2199520e5a763e415e7ed4d60f551 (patch) | |
tree | 7df943053408385725a676c36255172d5acd320b /legacy/syslinux/syslinux.post-upgrade | |
parent | c86aec496298fb20f0770f5ce9a2a37935f7aa5b (diff) | |
download | packages-abefa433c8e2199520e5a763e415e7ed4d60f551.tar.gz packages-abefa433c8e2199520e5a763e415e7ed4d60f551.tar.bz2 packages-abefa433c8e2199520e5a763e415e7ed4d60f551.tar.xz packages-abefa433c8e2199520e5a763e415e7ed4d60f551.zip |
add a legacy/ repo for syslinux et al
Diffstat (limited to 'legacy/syslinux/syslinux.post-upgrade')
-rw-r--r-- | legacy/syslinux/syslinux.post-upgrade | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/legacy/syslinux/syslinux.post-upgrade b/legacy/syslinux/syslinux.post-upgrade new file mode 100644 index 000000000..90388668d --- /dev/null +++ b/legacy/syslinux/syslinux.post-upgrade @@ -0,0 +1,61 @@ +#!/bin/sh + +# find given append opt +get_append_opt() { + awk -v search="$1" ' + $1 == "append" || $1 == "APPEND" { + split($0, a); + for (i in a) { + if (index(a[i], search) == 1) { + print a[i]; + } + } + }' /boot/extlinux.conf | sort | uniq +} + +# print default kernel options +get_default_opts() { + awk ' + $1 == "append" || $1 == "APPEND" { + opts=""; + space=""; + split($0, a); + for (i in a) { + if (i != 1 \ + && (index(a[i], "root=") != 1) \ + && (index(a[i], "initrd=") != 1) \ + && (index(a[i], "modules=") != 1)) { + opts = opts space a[i]; + space = " "; + } + } + print opts; + } + ' /boot/extlinux.conf | sort | uniq +} + +if ! [ -f /boot/extlinux.conf ]; then + exit 0 +fi + +# check if we already have a generated extlinux.conf +if grep -q '^# Generated by update-extlinux' /boot/extlinux.conf; then + exit 0 +fi + +# try fish out the kernel opts from extlinuix.conf's append line +root=$(get_append_opt 'root=' | head -n 1) +modules=$(get_append_opt 'modules=' | head -n 1) +opts=$(get_default_opts | head -n 1) + +# populate update-extlinux.conf with the info we know +if [ -n "$root" ]; then + sed -i -e "/^root=/s|.*|$root|g" /etc/update-extlinux.conf +fi +if [ -n "$modules" ]; then + sed -i -e "/^modules=/s|.*|$modules|g" /etc/update-extlinux.conf +fi +if [ -n "$opts" ]; then + sed -i -e "/^default_kernel_opts=/s|.*|default_kernel_opts=\"$opts\"|g" /etc/update-extlinux.conf +fi + |