Lookup for commands in kmod_module_new_from_lookup()
Install and remove commands are now properly treated on lookup. Example
config file:
$ ./test/test-lookup installme
libkmod version 1
Alias: 'installme'
Modules matching:
installme
install commands: 'echo "this is a install message"'
$ ./test/test-lookup removeme
libkmod version 1
Alias: 'removeme'
Modules matching:
removeme
remove commands: 'echo "this is a remove message"'
diff --git a/libkmod/libkmod-module.c b/libkmod/libkmod-module.c
index e901b76..dd340ee 100644
--- a/libkmod/libkmod-module.c
+++ b/libkmod/libkmod-module.c
@@ -482,7 +482,8 @@
err = kmod_lookup_alias_from_symbols_file(ctx, alias, list);
CHECK_ERR_AND_FINISH(err, fail, list, finish);
-// TODO: add lookup for install commands here.
+ err = kmod_lookup_alias_from_commands(ctx, alias, list);
+ CHECK_ERR_AND_FINISH(err, fail, list, finish);
err = kmod_lookup_alias_from_aliases_file(ctx, alias, list);
CHECK_ERR_AND_FINISH(err, fail, list, finish);
@@ -849,6 +850,12 @@
return mod->install_commands;
}
+void kmod_module_set_install_commands(struct kmod_module *mod, const char *cmd)
+{
+ mod->init.install_commands = true;
+ mod->install_commands = cmd;
+}
+
/**
* kmod_module_get_remove_commands:
* @mod: kmod module
@@ -896,6 +903,12 @@
return mod->remove_commands;
}
+void kmod_module_set_remove_commands(struct kmod_module *mod, const char *cmd)
+{
+ mod->init.remove_commands = true;
+ mod->remove_commands = cmd;
+}
+
/**
* SECTION:libkmod-loaded
* @short_description: currently loaded modules