5.8.2.5 Support for MySQL Shell Plugins

To use Section 7.3, “MySQL Shell Plugins” with the command-line integration, the functions must be explicitly defined for CLI support. When an object defined in a MySQL Shell Plugin is enabled for command-line integration, only the specific functions that were enabled are available for CLI calls. From MySQL Shell version 8.0.24, when you add function members to an object, they support the cli boolean option. When cli is set to true, the function is available from the command-line integration. The cli option defaults to false, therefore functions are not available from the command-line integration unless specifically enabled. Any object with a function that has the cli option enabled causes its parent objects to be available in the command-line integration as well.

To make a function available through the command-line integration, set the cli option to true when you add the extension object member. For example:

shell.addExtensionObjectMember(object, "exampleFunction", exampleFunction,
                      {
                        brief:"Retrieves brief information",
                        details: ["Retrieves detailed information"],
                        cli: true,    
                        parameters:
                        [
                          {
                            name: "param_a",
                            type: "string",
                            brief: "param_a brief"
                          }
                        ]
                      });

You could then use the exampleFunction() function from the command-line integration as follows:

mysqlsh -- customObj exampleFunction 1

If you have added an extension object member using a MySQL Shell version earlier than 8.0.24, and you want to use it with the command-line integration, you must enable the cli option. Use the addExtensionObjectMember method as illustrated here to add the object member again, this time enabling the cli option.