Skip to content

Instantly share code, notes, and snippets.

@skreuzer
Created September 4, 2014 20:54
Show Gist options
  • Save skreuzer/72b04f3034bb9399a556 to your computer and use it in GitHub Desktop.
Save skreuzer/72b04f3034bb9399a556 to your computer and use it in GitHub Desktop.
CFEngine Kernel Compare
bundle agent kerncmp
{
classes:
"running_required_kernel" expression => strcmp("$(kernel_version_met[1])", "true");
methods:
"any" usebundle => kernel_isgreaterthan("3.14.0"),
useresult => "kernel_version_met";
reports:
running_required_kernel::
"kernel version met";
}
bundle agent kernel_isgreaterthan(min_version)
{
vars:
any::
"x" slist => splitstring("$(sys.release)", "\.", 3);
"y" slist => splitstring("$(min_version)", "\.", 3);
y_defined::
"padded_x" string => format("%4d%04d%04d", nth("x", 0), nth("x", 1), nth("x", 2));
"padded_y" string => format("%4d%04d%04d", nth("y", 0), nth("y", 1), nth("y", 2));
classes:
any::
"y_defined" expression => isvariable("y");
"kernel_version_met" expression => isgreaterthan("$(padded_x)", "$(padded_y)");
reports:
kernel_version_met::
"true"
bundle_return_value_index => "1";
!kernel_version_met::
"false"
bundle_return_value_index => "1";
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment