mirror of
https://github.com/token2/snapd.git
synced 2026-03-13 11:15:47 -07:00
* boot/cmdline.go: add TODO about using strutil.KernelCommandLineSplit Signed-off-by: Ian Johnson <ian.johnson@canonical.com> * strutil/cmdline.go: add GetKernelCommandLineKeyValue This complements KernelCommandLineSplit, but goes further, checking for a specific key-value pair in the kernel command line parameters, and returning the value if found. This will be useful across the codebase for places where we want to check one specific kernel command line parameter key-value pair. Signed-off-by: Ian Johnson <ian.johnson@canonical.com> * logger/logger.go: use GetKernelCommandLineKeyValue directly This is a bit more straight forward to read IMHO and potentially reduces some looping over the parameters as we break as soon as we find snapd.debug in the positive case where it is set. Signed-off-by: Ian Johnson <ian.johnson@canonical.com> * strutil,osutil: move kernel commandline helpers to osutil * boot: tweak TODO now that we use osutil.KernelCommandLineSplit * many: refactor ModeAnd...FromKernelCommandLine and KernelCommandLineKeyValue Refactor GetKernelCommandLineKeyValue to KernelCommandLineKeyValue which returns a map of the specified keys that were found on the kernel command line that have values. It also no longer takes the command line string as an argument and instead parses the command line itself. The above necessitates moving the mocking function for where to find /proc/cmdline to osutil as well and adjusting many tests for this. Finally, with all of this in place we can refactor boot.ModeAndRecoverySystemFromKernelCommandLine to use the osutil helpers and not duplicate parsing logic in the boot package. This does result in a slight change in behavior where now duplicated kernel command line parameters are not a fatal condition, but instead the last definition is used. Also adjust some tests to mock an empty proc/cmdline to avoid using the host's version when running tests. Signed-off-by: Ian Johnson <ian.johnson@canonical.com> * osutil, many: rename to KernelCommandLineKeyValues Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> * boot: disallow non empty system label without a mode Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> * osutil: tweak handling of cmdline keys Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> * osutil: mv cmdline to kcmdline Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> * osutil: comment tweak Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> * logger: further tweaks Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> Co-authored-by: Michael Vogt <mvo@ubuntu.com> Co-authored-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com>